首页 > 其他分享 >打造企业专属人工智能助理

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

时间:2024-08-13 11:17:17浏览次数:12  
标签:run 专属 thread 人工智能 assistant tool id 助理

简介

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

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

应用场景

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

  1. 智能查天气助理。
  2. 智能提 bug 助理。
  3. 其他操作场景。

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

实践演练

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

  1. openai 官方提供的 assistant。
  2. 人工智能应用框架,比如 LangChain。

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

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

使用官方的 assistant

点击查看官方 assistant 使用教程

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

对应代码:

import json
import os
import time

import requests
from 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 实现企业专属人工智能助理。

标签:run,专属,thread,人工智能,assistant,tool,id,助理
From: https://www.cnblogs.com/hogwarts/p/18356494

相关文章

  • 科大讯飞智文 2.0 版本发布;人工智能模型 Grok 2 测试版即将发布丨 RTE 开发者日报
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编......
  • 【图书阅读】人工智能数据与模型安全
    可信机器学习是机器学习的一个新兴的分支,旨在解决现有机器学习算法和模型的可信度问题。可解释性一般鲁棒性对抗鲁棒性(对抗性攻击和防御)数据中毒(数据中毒和防御)后门鲁棒性(后门攻击和防御)隐私(数据泄露和模型窃取)差分隐私联邦学习公平性数据篡改和伪造机器学习不同......
  • 零基础学习人工智能—Python—Pytorch学习(四)
    前言接续上一篇的optimizer的学习。optimizer代码和上一篇文章的一样,如下:importtorchimportnumpyasnpimporttorch.nnasnnX=torch.tensor([1,2,3,4],dtype=torch.float32)Y=torch.tensor([2,4,6,8],dtype=torch.float32)w2=torch.tensor(0.0,requ......
  • 人工智能时代,程序员如何保持核心竞争力?
    随着AIGC(如chatgpt、midjourney、claude等)大语言模型接二连三的涌现,AI辅助编程工具日益普及,程序员的工作方式正在发生深刻变革。有人担心AI可能取代部分编程工作,也有人认为AI是提高效率的得力助手。面对这一趋势,程序员应该如何应对?是专注于某个领域深耕细作,还是广泛学习以适......
  • 人工智能时代程序员的核心竞争力塑造
    在当今的科技浪潮中,人工智能,特别是以AIGC为代表的大语言模型以及日益普及的AI辅助编程工具,正以前所未有的速度和深度重塑着程序员的工作领域。在这个变革的时代,程序员面临着前所未有的机遇和挑战,如何保持并提升自身的核心竞争力成为了至关重要的议题。目录一、AI辅助......
  • 【人工智能】【机器学习】- 好书推荐之《深度学习调参指南》
    《深度学习调参指南》是一份由Google和哈佛大学的研究人员与工程师共同编写的实战手册,旨在帮助读者系统性地优化深度学习模型的性能。该指南强调了在深度学习实践中遇到的实际问题和解决方案,尤其关注超参数调优的过程,同时也涉及工作流实施和优化等其他方面。目标读者对最大化......
  • 深圳市义务教育人工智能课程纲要(2024年版)
     《深圳市义务教育人工智能课程纲要(2024年版)》课程目标人工智能思维是指学生在设计、开发、测试与优化智能交互系统过程中所应具备的设计思维、工程思维、计算思维与系统思维。具备设计思维的学生,能够根据用户的真实需求发现问题,并通过多种形式提出创造性解决问题的方案;......
  • 无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智
    无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案1.Dify简介1.1功能情况Dify,一款引领未来的开源大语言模型(LLM)应用开发平台,革新性地融合了后端即服务(BackendasaService,BaaS)与LLMOps的精髓,为开发者铺设了一条从创意原型到高效生......
  • 基于人工智能的图像物体擦除与背景填充技术
    摘要:本文介绍了一种基于人工智能的图像处理技术,该技术能够自动识别并擦除图像中的指定物体,同时智能填充背景,以实现图像的自然恢复。该技术为用户提供了一种高效、简便的图像编辑工具,适用于多种应用场景。关键词:人工智能,图像编辑,物体擦除,背景填充1.引言在图像编辑领域,去......
  • 嵌入式人工智能ESP32(4-PWM呼吸灯)
    1、PWM基本原理PWM(Pulse-widthmodulation)是脉冲宽度调制的缩写。脉冲宽度调制是一种模拟信号电平数字编码方法。脉冲宽度调制PWM是通过将有效的电信号分散成离散形式从而来降低电信号所传递的平均功率的一种方式。所以根据面积等效法则,可以通过对改变脉冲的时间宽度,来等效的......