首页 > 其他分享 >打造垂直领域内容的问答机器人

打造垂直领域内容的问答机器人

时间:2024-08-12 11:37:52浏览次数:13  
标签:run thread assistant 机器人 client 打造 问答 id

简介

在大模型问世之后,其中一个最核心的功能就是问答机器人。但是若直接将问题抛给 ChatGPT,仍然解决不了以下限制:

  1. 相关的关联数据需要联网。
  2. 相关的关联数据是 GPT 也不知道的私密数据。

而在前面介绍RAG 检索增强生成的时候也同样提到了这一点。

应用场景

垂直领域内容的问答机器人的应用场景非常多,比如金融、医疗、电商等。

如果是针对于互联网相关的从业人员,比如开发、测试、产品等,我们还可以让其帮助我们进行以下多种类型的工作:

  1. 公司知识库检索。
  2. 需求分析。
  3. 用例评审、测试用例生成
  4. 代码生成。

实践演练

那么如果要完成一个垂直领域内容的问答机器人,其实也是有多种方式的:

  1. openai 官方在 2023 年末做了一次重大更新,推出了官方的 assistant,可以通过官方的 assistant 完成一个问答机器人。
  2. 其他方式,比如通过 RAG 结合向量数据库,或结合 LangChain 等人工智能应用框架完成。

使用官方的 assistant

点击查看官方 assistant 使用教程

如果使用 assistant 创建一个垂直领域内容的问答机器人,那么主要需要的,就是 Retrieval 的能力,注意这个能力至少需要 gpt-3.5-turbo-1106(支持较新版本)或 gpt-4-turbo-preview 型号。

  1. 编写好 Instructions,注意角色设定越详细越清楚越好。
  2. 将 Retrieval 的配置打开,再将需要给机器人检索的文件上传上去(注意,文件越大 token 消费越高)。
  3. 输入想要检索的信息的 prompt。
  4. 即可获取到文档内的信息内容。
  5. 注意,上传的文件有格式限制,支持的格式为官方支持的格式
通过编写代码实现

import time
from openai import OpenAI
import os
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
# 1. 绑定课程文件
file = client.files.create(
    file=open("课程数据.md", "rb"),
    purpose='assistants'
)
# 2. 创建课程处理机器人
assistant = client.beta.assistants.create(
    instructions="你是一个课程维护者,你需要清楚的知道课程名称以及其对应的url地址。",
    model="gpt-4-turbo-preview",
    tools=[{"type": "retrieval"}],
    file_ids=[file.id]
)
# 3. 创建一个线程
thread = client.beta.threads.create()
# 4. 创建一条消息
message = client.beta.threads.messages.create(
    thread_id=thread.id,
    role="user",
    content="请告诉我超时处理对应的视频地址"
)
# 5. 提问
run = client.beta.threads.runs.create(
    thread_id=thread.id,
    assistant_id=assistant.id,
    instructions="你是一个课程维护者,你需要清楚的知道课程名称以及其对应的url地址。",
)
# 6. 循环查询问题是否已经解决完成
def wait_on_run(run, thread):
    while run.status == "queued" or run.status == "in_progress":
        run = client.beta.threads.runs.retrieve(
            thread_id=thread.id,
            run_id=run.id,
        )
        time.sleep(0.5)
    return run
wait_on_run(run, thread)
# 6. 获取历史消息
messages = client.beta.threads.messages.list(thread_id=thread.id).model_dump_json(indent=2)
print(messages)

其他方式

  1. 结合向量数据库完成。
  2. 结合 LangChain 等人工智能应用框架完成。

总结

  1. 垂直领域内容的问答机器人的产品需求。
  2. 垂直领域内容的问答机器人的实现方案。
  3. 使用官方 assistant 实现垂直领域的问答机器人。

标签:run,thread,assistant,机器人,client,打造,问答,id
From: https://www.cnblogs.com/hogwarts/p/18354660

相关文章

  • 打造高效存储与访问体验:NFS共享携手Nginx负载均衡,赋能企业级数据流通与性能优化
     作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注 座右铭:   云端筑梦,数据为翼,探索无限可能,引领云计算新纪元 个人主页:团团-CSDN博客前言:随着业务的增长,公司需要更多的服务器来支持用户访问和应用程序的运行。NFS共享可以解决文件存储的问题,而n......
  • 机器人正运动学DH参数详解
    机器人正运动学DH参数详解一、连杆描述1连杆长度a与连杆转角α连杆长度a:两轴之间公垂线的长度连杆转角α:假设作一个平面,并使该平面与两关节轴之间的公垂线垂直,然后把关节轴i-1和关节轴i投影到该平面上,在平面内轴i-1按照右手法则绕ai-1转向轴i2连杆偏距d与关节角θ......
  • Xcode 应用国际化全攻略:打造多语言应用的秘诀
    Xcode应用国际化全攻略:打造多语言应用的秘诀引言在全球化的软件开发领域,应用的国际化是拓展国际市场的关键步骤。Xcode,作为苹果官方的集成开发环境,提供了一套强大的本地化支持工具和流程。本文将详细介绍如何在Xcode中进行应用的国际化,包括详细的步骤说明和代码示例,帮助......
  • 钉钉群机器人开发接口
      获取自定义机器人webhook步骤一,在机器人管理页面选择“自定义”机器人,输入机器人名字并选择要发送消息的群。如果需要的话,可以为机器人设置一个头像。点击“完成添加”,完成后会生成Hook地址,如下图:步骤二,点击“复制”按钮,即可获得这个机器人对应的Webhook地址,其格式如......
  • 中后台管理信息系统:打造高效原型设计的12套通用框架模板
    在数字化转型的大潮中,中后台管理信息系统作为企业内部管理的核心支撑,其设计与实现直接影响着企业的运营效率与决策能力。为了高效、精准地满足多样化的中后台管理系统开发需求,一套全面、灵活的原型设计方案显得尤为重要。本文将深入探讨一款集成了12套精心设计的框架模板的中后......
  • 取药机器人的机械结构设计(开题报告)
    开题报告题目:取药机器人的机械结构设计一、选题背景与意义随着中国社会老龄化趋势的加剧,医疗需求特别是慢性病管理需求显著增加,医院药房面临巨大的工作压力。传统的人工取药方式不仅效率低下,还易因疲劳导致错误,影响患者用药安全。因此,开发自动化取药机器人成为提升医疗服......
  • Kmeans聚类算法(用于魔方机器人的色片分类及应用拓展)
    K-means聚类是一种广泛使用的无监督学习算法,用于将数据点分成K个聚类。它的主要目标是最小化每个聚类内数据点到聚类中心的距离之和,从而使得每个聚类内的数据点相似性最大,而不同聚类之间的差异性最大。目录1.K-means聚类的基本步骤1.1选择K个初始中心点1.2将每个数......
  • 四.mongodb问答
    目录四.mongodb4.1mongodb的优势有哪些缺点4.2什么是mongodb中的document4.3什么场景下会使用mongodb4.4mongodb中的分片是什么意思4.5什么时候需要分片:4.6如何将数据分布在不同的chunk上4.7mongodb支持哪些类型的索引4.8副本集有哪些角色,是做什么的主节点(Primary)从节点(S......
  • 逆天20w赞!吴恩达+Open AI打造《大模型通关指南》
    本书介绍LLM(LargeLanguageModels)正在逐步改变人们的生活,对于开发者来说,如何利用LLM提供的API快速、便捷地开发具备更强大能力、集成LLM的应用程序,以实现更新颖、更实用的功能,是一项急需学习的重要技能。吴恩达老师与OpenAI合作推出的大模型系列教程,从大模型时代开发者的......
  • C语言问答进阶--2、C语言简介及基本的输入输出函数
    C语言简介Q:您好,能大体介绍下C语言吗?A:当然可以。C语言是一种计算机语言,它主要被用在系统编程里,可以说,C语言的产生就和操作系统的编写密不可分。【C语言简要历史】1978年由美国电话电报公司(AT&T)的贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchie合著了著......