写点什么

人工智能丨打造企业专属人工智能助理

作者:测试人
  • 2024-08-13
    北京
  • 本文字数:2003 字

    阅读完需:约 7 分钟

简介

而在前面介绍 React 推理提示的时候讲到了,目前的大语言模型本身不具备任何的执行能力,只具备理解自然语言的能力。

而如果要打造企业专属的人工智能助理,这个助理除了要具备“听懂人话的能力”,还需要具备执行动作的能力。要不然和问答机器人就没有任何区别了。所以本章节要完成的一个实践示例,就是让大模型具备“听懂人话”+“执行动作”的能力。

应用场景

智能助理由于具备“听懂人话”+“执行动作”的能力,所以其可拓展性是非常强的。理论上来说,所有的操作都能通过智能助理实现。比如如下几个场景。

  1. 智能查天气助理。

  2. 智能提 bug 助理。

  3. 其他操作场景。

只是越复杂的应用场景,中间牵涉到的工具和执行步骤也就越多越复杂。

实践演练

那么如果要实现打造企业专属人工智能助理,其实也是有多种方式的:

  1. openai 官方提供的 assistant。

  2. 人工智能应用框架,比如 LangChain。

assistant 目前相比于 LangChain。因为和 ChatGPT 强绑定,所以自然有一定的局限性。但是优点就是非常的简单且容易上手,如果可以接受 token 比较昂贵的消费。那么使用 assistant 也是一个非常好的选择。

而 LangChain 其灵活性则更强,会在后面的章节进行进一步的介绍。

使用官方的 assistant

点击查看官方 assistant 使用教程

假设我们现在的需求,是要让人工智能助理编造一条笑话,并且使用邮箱进行发送,那么整体流程应该如下:



对应代码:

import jsonimport osimport time
import requestsfrom openai import OpenAI
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))# 一个发送邮件的函数工具def send_email(quote, recipient="霍格沃兹测试开发学社@email.com"): # Print the quote and recipient for debugging purposes print(f"生成消息:\n {quote}\n\n发送邮件给: {recipient}") # Return a success message return "发送邮件给" + recipient# 工具的提示词。为了让大模型更好理解工作的作用。tools = [{ "type": "function", "function": { "name": "send_email", "description": "Sends a quote via email", "parameters": { "type": "object", "properties": { "quote": { "type": "string", "description": "A generated funny quote" } }, "required": [ "quote" ] } }}]# 1. 创建助手assistant = client.beta.assistants.create( name="Wise Guy", instructions="你是一位聪明的哲学家,会产生有趣的引言。", model="gpt-3.5-turbo-1106", tools=tools)# 2. 创建线程thread = client.beta.threads.create()# 3. 传入 prompt 并执行线程message = client.beta.threads.messages.create( thread_id=thread.id, role="user", content="创建一个笑话并且使用邮件发送",)# 4. 执行消息run_res = client.beta.threads.runs.create( thread_id=thread.id, assistant_id=assistant.id, )# 5. 等待回复def wait_on_run(run): while run.status == "queued" or run.status == "in_progress": run = client.beta.threads.runs.retrieve( thread_id=thread.id, run_id=run.id, ) print(f"执行的状态为:{run.status}") time.sleep(0.5) return run# 6. 获取回复的结果run_res = wait_on_run(run_res)# 7. 如果回复的结果需要调用工具if run_res.status == "requires_action": # 提交工具的返回信息 tool_call = run_res.required_action.submit_tool_outputs.tool_calls[0] name = tool_call.function.name arguments = json.loads(tool_call.function.arguments) print("等待返回的参数:", name) print(f"函数参数为:{arguments}") # 调用发送邮件工具 task = send_email(**arguments) # 提交工具执行后的结果信息。 run = client.beta.threads.runs.submit_tool_outputs( thread_id=thread.id, run_id=run_res.id, tool_outputs=[ { "tool_call_id": tool_call.id, "output": "done", } ], ) print("==========调用 chatgpt 执行内容") run = wait_on_run(run) print("==========获取返回信息") print(client.beta.threads.messages.list(thread_id=thread.id, order="asc").model_dump_json(indent=2))
复制代码

其他方式

  1. 结合 LangChain 等人工智能应用框架完成。

总结

  1. 企业专属人工智能助理的产品需求。

  2. 企业专属人工智能助理的实现方案。

  3. 使用官方 assistant 实现企业专属人工智能助理。

软件测试开发免费视频教程分享


发布于: 14 分钟前阅读数: 7
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
人工智能丨打造企业专属人工智能助理_软件测试_测试人_InfoQ写作社区