当前位置: 首页 > news >正文

网站的关键词排名怎么做创业做网站开发

网站的关键词排名怎么做,创业做网站开发,上网站建设公司,网站建设前言OpenAI在11月6号的开发者大会上#xff0c;除了公布了gpt4-v、gpt-4-turbo等新模型外#xff0c;还有一个assistants-api#xff0c;基于assistants-api开发者可以构建自己的AI助手#xff0c;目前assistants-api有三类的工具可以用。首先就是之前大火的代码解释器(Code In…  OpenAI在11月6号的开发者大会上除了公布了gpt4-v、gpt-4-turbo等新模型外还有一个assistants-api基于assistants-api开发者可以构建自己的AI助手目前assistants-api有三类的工具可以用。首先就是之前大火的代码解释器(Code Interpreter)这个在chatgpt-plus会员上线的时候大火了一把。其次就是文件检索(Retrieval)利用Retrieval你可以在assistants中外挂自己的知识库。还有就是函数调用了这个就不在多说了。assistants-api目前还处于beta版本但从OpenAI的规划来看后续应该是会支持DALLE3、gpt4-v甚至是plugin的我们可以期待下。 使用assistants-api和使用chat-api有啥区别首先就是chat api只能使用模型的chat能力的而且如果你之前使用过就会发现chat对话历史都需要自行维护很不方便。而assistants-api除了chat的能力外它还可以调用强大的解释器(Code Interpreter)还可以调用外部函数(Functions Calling) 而且还可以外挂自己的知识库(Retrieval)主要你还不需要维护对话历史只需要关注对话本身即可。 如果后续assistants-api支持了plugin、DALLE3和gpt4-v之后你完全可以认为它就是一个api版本的chatGPT-Plus当然功能可以可以完全定制相信看到这里你肯定也蠢蠢欲动想定制自己的AI助手了。 在正式开始开发之前我们先来了解下Assistants-API的几个核心对象。 对象作用Assistant助手可以使用指定模型根据的一个实体如果把助手比作某个人的化这里就是指具备某些能力的一个具体的人Thread没有合适的翻译这里就不翻译了可以认为这个是和助手的沟通的上下文对话信息 就好比你和某宝客服沟通整个对话就可以认为是一个ThreadRun也没有合适的翻译可以认为是你向助手发起一次对话整个对话响应的过程及工程中的状态变化就可以当成一个run一个run里不仅仅可以有模型的回复还可以有函数调用、代码解释器调用、文件召回……Run StepRun各个步骤的详情可以看到整个助手的运行过程主要是方便问题排查和助手优化 知道了这些概念我们就可以着手实现自己的Assistant了为了能更好理解整个Assistant的开发流程我们还是用一个具体的示例来完成整个功能的开发。假设我们需要开发一个花店财务助手它的主要功能是根据我们每天卖出去的花统计成本和收入最后将收入和成本保存到数据库里。 这里我提前准备了一个excel表格(flower_prices.xlsx)来记录所有花的成本和售价虚构数据、不代表真实价格。   下面正式开始我们花店财务助手的开发和使用。 创建助手 这里首先需要将我们的flower_prices.csv转成Assistant能使用的file使用如下代码即可 from openai import OpenAI client OpenAI(base_urlhttps://thales.xindoo.xyz/openai/v1/) # 将文件上传至openAI保存 file client.files.create(fileopen(flower_prices.csv, rb),purposeassistants )接下来我们定义保存账单信息的function具体可以参考下我上篇博客OpenAI的多函数调用 # 定义保存账单的方法 def save_bill(totalCost, totalIncome):保存总成本和总的收入print(totalCost, totalIncome)return successfunction {type: function,function: {name: save_bill,description: 保存总成本和总的收入,parameters: {type: object,properties: {totalCost: {type: number,description: 总成本,},totalIncome: {type: number,description: 总收入,}},required: [totalCost, totalIncome],},}} available_functions { save_bill: save_bill} 创建助手(assistant) 这里需要调用API将所有的开关、文件和函数调用信息都传给OpenAI创建一个属于我们自己的assistant。 # 创建助手将code_interpreter,retrieval,function都开启 assistant client.beta.assistants.create(name花店财务助手,description按照每种花的售出量统计成本和收入计算出总利润,modelgpt-4-1106-preview,tools[{type: code_interpreter}, {type: retrieval}, function],file_ids[file.id] )创建Thread 如上文讲到Thread是用户和Assistant对话的上下文信息用户和Assistant初次对话肯定是需要创建上下文的代码和很简单如下 # 创建对话Thread thread client.beta.threads.create(messages[{role: user,content: 我卖出去了红玫瑰3支、郁金香2支、百合6支计算下总成本和总收入给出具体的计算过程}] )这里看到Thead并没有和Assistant关联到一起猜测这里只是在本地代码里创建了一个Thread对象实际上在OpenAI那边还没有任何操作这个可能是OpenAI利用懒加载来减轻对服务端的压力。 创建Run # 创建Run run client.beta.threads.runs.create(thread_idthread.id,assistant_idassistant.id )创建Run的方法也很简单可以看到只需要传thread_id和assistant_id两个参数即可而这两个id都是字符串尤其是assistant_id 你都是可以在OpenAI网站后台看到的相信这里大家已经猜到了Assistant和Thread不用每次都创建新的。 # 从Run中获取结果 run client.beta.threads.runs.retrieve(thread_idthread.id,run_idrun.id )获取run的状态 Run创建好之后需要让OpenAI运行起来这里就需要调用Retrieve方法来获取Run的运行结果这里如果你打印出run的话你可能会看到类似的信息。 Run(idrun_A9phobcoIOG3euibElksTu8a, assistant_idasst_hW7NrPZP8q8KvE9oiuceg5mM, cancelled_atNone, completed_atNone, created_at1700400089, expires_at1700400689, failed_atNone, file_ids[file-uhMIBtm4BPXlJlY1UzGIPlGn], instructionsNone, last_errorNone, metadata{}, modelgpt-4-1106-preview, objectthread.run, required_actionNone, started_at1700400089, statusin_progress, thread_idthread_nvsTyK6DQdmKoVxOseSSKZF4, tools[ToolAssistantToolsCode(typecode_interpreter), ToolAssistantToolsRetrieval(typeretrieval), ToolAssistantToolsFunction(functionFunctionDefinition(namesave_bill, parameters{type: object, properties: {totalCost: {type: number, description: 总成本}, totalIncome: {type: number, description: 总收入}}, required: [totalCost, totalIncome]}, description保存总成本和总的收入), typefunction)])这里获取到的是run的最新状态有可能run还没有执行完所以可能需要一直循环调取等待run的状态发生变化。Run有以下的一些状态。 具体的状态和含义如下表 状态定义queued当Runs首次创建或者调用了retrive获取状态后就会变成queued等待运行。正常情况下很快就会变成in_progress状态。in_progress说明run正在执行中这时候可以调用run step来查看具体的执行过程completed执行完成可以获取Assistant返回的消息了也可以继续想Assistant提问了requires_action如果Assistant需要执行函数调用就会转到这个状态然后你必须按给定的参数调用指定的方法之后run才可以继续运行expired当没有在expires_at之前提交函数调用输出run将会过期。另外如果在expires_at之前没获取输出run也会变成expired状态cancelling当你调用client.beta.threads.runs.cancel(run_idrun.id, thread_idthread.id)方法后run就会变成cancelling取消成功后就会变成callcelled状态cancelledRun已成功取消。failed运行失败你可以通过查看Run中的last_error对象来查看失败的原因。 这里需要特别注意requires_action状态这个是需要要求代码本地去执行一些函数的执行完成后将结果返回给Assistant之后run才能继续运行下去。 run触发函数调用 如果run.status是requires_action我们需要调用本地工具当然现在只有函数调用然后将函数调用的结果返给Assistant方便它继续执行代码如下 if run.status requires_action:tool_outputs[]# 调用并保存所有函数调用的结果for call in run.required_action.submit_tool_outputs.tool_calls:if call.type ! function:continue# 获取真实函数function available_functions[call.function.name]output {tool_call_id: call.id,output: function(**call.function.arguments),}tool_outputs.append(output)# 将函数调用的结果回传给Assistantrun client.beta.threads.runs.submit_tool_outputs(thread_idthread.id,run_idrun.id,tool_outputstool_outputs)获取Assistant的消息 接下来我只需要轮询retrive接口获取run的最新状态如果状态是completed就可以读取Assistant的返回结果了。 # 获取run的最新状态。 run client.beta.threads.runs.retrieve(thread_idthread.id,run_idrun.id ) if run.status completed:messages client.beta.threads.messages.list(thread_idthread.id)print(messages)这里注意下messages是倒序排列的所以最新的消息是在最上面的。 发起新信息 上面的流程是从Assistant创建到发起首次消息的流程如果我们需要紧接着之前的流程继续对话只需要在thread中添加新的消息然后然后创建并执行run即可代码如下 # 添加新消息 message client.beta.threads.messages.create(thread_idthread.id,roleuser,content另外还有2支向日葵补充下这份账单 ) # 创建run run client.beta.threads.runs.create(thread_idthread.id,assistant_idassistant.id ) # 获取执行结果 run client.beta.threads.runs.retrieve(thread_idthread.id,run_idrun.id )结语 以上就是Assistants-API整体的开发流程了解了这些流程后大家可以很容易构建出像ChatGPT-Plus的私人助理。当然Assistants-API目前还是在beta阶段有很多功能不完善比如不支持流式返回、不支持图片生成、不支持插件调用……甚至run的状态还需要轮询来获取……。另外我在写本文demo的时候发现Retrivel的文本内容召回成功率非常低导致账单计算成功率很低也可能是我给的文本格式的问题。还有就是code_interpreter运行成功率也很低经常出现运行不起来的情况难怪还是beta版本只能期待后续官方能优化下。 另外有些像assistant、thread、run、run step的查看和管理的接口我这里没有讲到具体大家可自行查阅下官网文档。 如果大家需要试用Assistants-API的话也可以先到官方https://platform.openai.com/assistants 先行体验试用完成后可以再将页面配置完整翻译成代码然后再嵌入到自己的应用中。 完整的代码我已上传至Github上https://github.com/xindoo/openai-examples/blob/main/flower_assistant.ipynb后续OpenAI其他API的使用示例我也会上传到这个仓库有兴趣可以关注下。
http://www.huolong8.cn/news/278944/

相关文章:

  • 赤峰网站建设企业网站开发实训指导书
  • 营销网站与企业网站的区别自己开平台怎么弄啊
  • 网页设计班级网站用什么做首页网站建设比较好公司
  • 在Vs中做网站接口官网建设需求
  • 天津网站排名提升如何建设论坛网站
  • 网站建设在哪里的wordpress 判断cli
  • 网站建设和程序开发哪个好充实网站 廉政建设 板块
  • 公司网站建设周期及费用网页设计html代码大全图片
  • 增城营销网站建设小说小程序源码
  • 网页网站的区别是什么wordpress图片批量上传
  • 咖啡豆网站模板做网站怎么做的
  • 昆明响应式网站制作flash手机网站制作
  • 深圳网站建设推荐建筑信息平台查询
  • 网站毕业设计开题报告章丘营销型网站建设
  • 那家网站做照片书好网站空间ip是一个域名
  • 做淘宝导购网站网站运营的概念
  • 珠宝设计网站川海丰尚麻辣烫加盟费多少
  • 温州 网站优化wordpress 采集微博
  • 机械企业网站建设wordpress制作相册
  • 缔客网络上海响应式网站建设wordpress 配置说明
  • 自建网站多少钱网站如何维护
  • 做网站维护承包合同怎样不花钱做网站
  • 服装设计网站怎么做沧州地区阿里巴巴做网站
  • 泉州网站建设哪里好棋牌网站开发
  • 名气特别高的手表网站目前比较火的电商平台有哪些
  • 网站模板平台资源那些网站做的非常好看
  • wordpress建站方法国家住房和城乡建设部中国建造师网站
  • 做外卖那些网站好影视公司招聘信息
  • 中国建设银行网站结构怎么做淘宝客网站和APP
  • 企业网站建设合同方案呈贡网站建设