使用OpenAI Assistants三分钟搭建个人知识库AI助手网站

这篇具有很好参考价值的文章主要介绍了使用OpenAI Assistants三分钟搭建个人知识库AI助手网站。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Assistants介绍

随着OpenAI将Assistants助手API对外发布,我们搭建个人知识库变的如此简单。开发者将自己的应用通过Assistants API与OpenAI对接,就可以让每一位客户拥有不一般体验的个人知识库。由于Assistants相关API有30+,本文只列举完成一个最小功能闭环涉及的接口。关于Assistants的介绍,这里借用官网的一张图说明
使用OpenAI Assistants三分钟搭建个人知识库AI助手网站

对象 介绍
Assistant(助手) 使用OpenAI模型和调用工具的专用AI
Thread(线程) 助手和用户之间的对话会话。线程存储消息并自动处理截断以使内容适合模型的上下文。
Message(消息) 由助手或用户创建的消息。消息可以包括文本、图像和其他文件。消息以列表形式存储在线程上。
Run(人机交互) 在线程上调用助手。助手使用它的配置和线程的消息通过调用模型和工具来执行任务。作为人机交互的一部分,助手将消息追加到线程。
Run Step(人机交互步骤) 助手在人机交互过程中所采取的步骤的详细列表。助手可以在人机交互期间调用工具或创建消息。检查人机交互步骤可以让您思考助手如何获得最终结果。

Assistants Demo开发

以下只是介绍下如何开发一个简单的助手Demo,针对每个步骤有详细说明,感兴趣的朋友可以参考自行实现客户端。

  • 1.上传知识文件(File),需要注意purpose参数需要设置为assistants,表示该文件用于助手。目前OpenAI官方要求单个文件不能超过512M。支持txt、pdf、docx、pptx、xlsx、csv、xml、json、java、c、python常见文件格式,并要求编码格式为utf-8、utf-16、ascii其中的一种,详情请查询官网助手关于支持的文件类型的描述
curl --location --request POST 'https://gateway.ai.cloudflare.com/v1/2a2*****************60/******/openai/files' \
--header 'Authorization: Bearer sk-123' \
--form 'purpose="assistants"' \
--form 'file=@"C:\\Users\\admin\\Desktop\\三国演义(白话文版).txt"'

使用OpenAI Assistants三分钟搭建个人知识库AI助手网站

  • 2.创建助手(Assistants),创建助手时需要指定助手名称、提示词、设置需要使用的工具、关联的文件(目前每个助手限制最多20个文件,且单个文件不能超过2000000 tokens,如果文件比较多,建议合并后上传)、以及使用的模型(本文选择gpt-4-1106-preview)。本次示例中助手只开启了工具中的检索(Retrieval)功能,代码解释器(Code interpreter)和函数(Functions)未用到,后面有机会再聊。
curl --location --request POST 'https://gateway.ai.cloudflare.com/v1/2a26****************d560/*****/openai/assistants' \
--header 'Authorization: {{secretKey}}' \
--header 'OpenAI-Beta: assistants=v1' \
--header 'Content-Type: application/json' \
--data-raw '{
    "instructions": "您将担任XY的高级内容分析师。XY是一位在小说创作领域具有丰富经验的文学家。你的任务是基于XY上传的小说,回答用户问题,并提供深入见解。任务说明:1.当用户提问时,仔细分析问题并基于XY上传的小说给出回答;2.如果回答来自于上传的小说,请提供小说的文件名称;3.如果上传的小说中没有能回答用户问题的参考内容,请直接回答\"我不知道\"。",
    "name": "内容分析师",
    "tools": [
        {
            "type": "retrieval"
        }
    ],
    "file_ids": [
        "file-0CocxG465dfsIUd4MKx0O8iG"
    ],
    "model": "gpt-4-1106-preview"
}'

使用OpenAI Assistants三分钟搭建个人知识库AI助手网站

  • 3.创建线程(Thread),您可以将线程理解为用户与助手对话的上下文,它会记录用户与助手相互发送的message。
curl --location --request POST 'https://gateway.ai.cloudflare.com/v1/2a26**************d560/*****/openai/threads' \
--header 'Authorization: {{secretKey}}' \
--header 'OpenAI-Beta: assistants=v1' \
--header 'Content-Type: application/json' \
--data-raw ''

使用OpenAI Assistants三分钟搭建个人知识库AI助手网站

  • 4.向助手发送信息(send message),线程创建好之后,意味着当前用户与助手对话的上下文已经建立完毕,用户可以想助手发送消息了。由于线程会管理用户与助手之间相互发送的message,所以每次用户向助手发送消息时,只需要发送最新的message,而不必携带用户发送的历史消息,这样逻辑更简单,也节省tokens。
curl --location --request POST 'https://gateway.ai.cloudflare.com/v1/2a2*******************d560/******/openai/threads/thread_mAO9Gqfg4fdfgBVoMxOLXn/messages' \
--header 'OpenAI-Beta: assistants=v1' \
--header 'Authorization: {{secretKey}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "role": "user",
    "content": "你知道赤壁之战吗?"
}'

使用OpenAI Assistants三分钟搭建个人知识库AI助手网站

  • 5.执行人机交互(Run),消息发送完毕,是时候让助手干活了。关于Run的执行,里面细节比较多,后面有机会聊。
curl --location --request POST 'https://gateway.ai.cloudflare.com/v1/2a265********************560/*****/openai/threads/thread_mAO9GqdfgdsfgerVoMxOLXn/runs' \
--header 'Authorization: {{secretKey}}' \
--header 'OpenAI-Beta: assistants=v1' \
--header 'Content-Type: application/json' \
--data-raw '{
    "assistant_id": "asst_F4fnsdfgds42w9yJr2vZieb"
}'

使用OpenAI Assistants三分钟搭建个人知识库AI助手网站

  • 6.查询指定线程(Thread)下特定人机交互(Run)的执行状态(status)。人机交互(Run)任务提交后,我们需要实时关注任务执行状态,status状态包括:queued、 in_progress、requires_action、cancelling、cancelled、failed、completed、expired。为了使Run状态是最新的,你需要定时轮询Run对象获取最新的状态。需要注意的是,如果Run处于completed状态,标识当前人机交互(Run)已经执行完成,可以调用消息接口查询助手返回的内容了。
curl --location --request GET 'https://gateway.ai.cloudflare.com/v1/2a26*******************d560/*****/openai/threads/thread_mAO9Gqmh4356fd7KBVoMxOLXn/runs/run_Nkx07ebg55LmUyJgx9' \
--header 'Authorization: {{secretKey}}' \
--header 'OpenAI-Beta: assistants=v1' \

使用OpenAI Assistants三分钟搭建个人知识库AI助手网站
使用OpenAI Assistants三分钟搭建个人知识库AI助手网站

  • 7.查询指定线程(Thread)的消息列表,返回的消息列表默认按时间降序排列,limit最大支持100。需要说明的是:Thread中可以存储的message数量没有限制,但是一旦message的大小超过模型的上下文窗口限制,Thread将尝试包含尽可能多的适合上下文窗口的message并删除最旧的message。
curl --location --request GET 'https://gateway.ai.cloudflare.com/v1/2a2*********************d560/******/openai/threads/thread_mAO9Gqm456fdYo7KBVoMxOLXn/messages?limit=20' \
--header 'OpenAI-Beta: assistants=v1' \
--header 'Authorization: {{secretKey}}' \

使用OpenAI Assistants三分钟搭建个人知识库AI助手网站文章来源地址https://www.toymoban.com/news/detail-746957.html

  • 8.重复步骤4、5、6、7,即可实现用户与助手的多轮对话。本文中只介绍了接口调用的时序,至于具体实现有兴趣的自己实现客户端,这里就不提供了。

到了这里,关于使用OpenAI Assistants三分钟搭建个人知识库AI助手网站的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docsify快速部署搭建个人知识库(支持本地、服务器、虚拟机运行)

    🏠 服务器与网站部署知识体系目录 我们先在本地运行体会与获取 docsify 结构,后面再部署到服务器上运行。 部署一个个人知识库只需要按照本文的指令直接 cv 即可。但请注意打开服务器防火墙的 80 端口。 Docsify即时生成您的文档网站。与 GitBook 不同,它不会生成静态 htm

    2024年02月04日
    浏览(44)
  • Fastgpt配合chatglm+m3e或ollama+m3e搭建个人知识库

    人工智能大语言模型是近年来人工智能领域的一项重要技术,它的出现标志着自然语言处理领域的重大突破。这些模型利用深度学习和大规模数据训练,能够理解和生成人类语言,为各种应用场景提供了强大的文本处理能力。AI大语言模型的技术原理主要基于深度学习和自然

    2024年04月16日
    浏览(43)
  • 使用Docker部署wikitten个人知识库

    Wikitten是一款开源Wiki知识管理系统,使用PHP开发,支持Markdown语法,无需数据库,自动生成树形目录,适合用来做个人Wiki知识库。 Wikitten 是一个小巧、快速的 PHP wiki。 Wikitten是存储您的笔记、代码片段、想法等的完美场所。 Wikitten是一款开源Wiki知识管理系统。 支持Markdown语

    2024年02月14日
    浏览(37)
  • 基于Springboot+Openai SDK搭建属于自己的ChatGPT3.5 Ai聊天知识库,已接入Stable Diffusion绘图Api

    花费二个多月查阅资料与前后端开发,终于完成了我的开源项目HugAi聊天知识库。项目是基于Springboot+vue2集成了OpenAi SDK开发的一套智能AI知识库,已接入ChatGpt3.5接口以及openai的绘图接口,前后端代码都开源。 支持上下文功能 会话记录持久化 sse流式响应 后台可配置的场景对话

    2024年02月05日
    浏览(46)
  • 使用golang 基于 OpenAI Embedding + qdrant 实现k8s本地知识库

    文章博客地址:套路猿-使用golang 基于 OpenAI Embedding + qdrant 实现k8s本地知识库 将数据集 通过 openai embedding 得到向量+组装payload,存入 qdrant 用户进行问题搜索,通过 openai embedding 得到向量,从 qdrant 中搜索相似度大于0.8的数据 从 qdrant 中取出相似度高的数据 将获取到的QA,组装成 pr

    2024年02月08日
    浏览(34)
  • 使用chatglm搭建本地知识库AI_闻达

    最近大火的chatgpt,老板说让我看看能不能用自己的数据,回答专业一些,所以做了一些调研,最近用这个倒是成功推理了自己的数据,模型也开源了,之后有机会也训练一下自己的数据。 1.1双击打开anconda prompt创建虚拟环境 1.2下载pytorch(这里要根据自己的电脑版本下载)都

    2024年02月10日
    浏览(50)
  • [Unity+文心知识库]使用百度智能云搭建私有知识库,集成知识库API,打造具备知识库的AI二次元姐姐

            最近从百度智能云的官方技术支持那边了解到,目前百度千帆大模型平台提供有在线的知识库功能,能够在线上传自己的私人知识库文档,并且配置文心一言模型作为文本生成的引擎,构建自己的私有知识库。之前自己搭建知识库都是用的langchain框架,在本地部署使

    2024年02月04日
    浏览(44)
  • Notion——构建个人知识库

    使用Notion快三年了,它All in one的理念在使用以后确实深有体会,一直想找一个契机将这个软件分享给大家,这款笔记软件在网上已经有很多的教程了,所以在这里我主要想分享 框架 方面的内容给大家,特别对于学生党、研究生们。Notion的扩展性很强,但是本文没有什么炫技

    2024年02月01日
    浏览(48)
  • 使用langchain+chatGPT搭建自有知识库问答机器人

            自去年年底OpenAI发布ChatGPT以来,大型语言模型在人工智能领域掀起了一股热潮。随后,各家公司纷纷推出自己的大型语言模型,如百度的文心一言、讯飞的星火大模型等。在这个过程中,文本转图片和文本转视频等相关领域也备受关注。然而,很显然,这只是一时的

    2024年02月13日
    浏览(46)
  • 渗透工具及其知识库(个人笔记)

    查看kali网段:      ip addr 、 ifconfig namp: nmap -sP xxx.xxx.xxx.0/24 netdiscover: netdiscover  xxx.xxx.xxx.0/24 arp: arp-scan -l 粗略扫描: nmap IP 深度扫描: nmap -A -p- IP nmap -T4 -A -v IP whatweb url cmseek -u url gobuster dir -u url -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.html,.sh,.txt -b \\\'40

    2024年04月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包