当前位置:   article > 正文

探索基于OpenAI实现个性化对话机器人(二)_open ai 情景对话

open ai 情景对话

#前情提要#

  我想做一个基于我的私有数据的对话机器人。探索基于openAI实现个性化对话机器人(一)-CSDN博客

        前文已经介绍如何使用fine-tuning模型构建自己的chatbot,但是fine-tuning模型也是一个基于概率的模型,由于AI团队使用的训练集数据的规模极大且繁多,你想通过这单次的微调就很快改变模型比较有难度。又陷入了:如何根据我提供的知识进行精准对话呢?

        幸运的是目前OpenAI团队推出了Retrieve助手,它可以基于你提供的私有数据和你进行对话,这样我们不就可以站在巨人的肩膀上做事了吗哈哈哈^^

https://platform.openai.com/docs/assistants/tools/knowledge-retrieval

        总的来说,要是想结合openAI现有的模型进行私域数据对话,目前有2个方案:

(1)fine-tuning---这个之前介绍过了

(2)assistants---AI助手(有assistants、chat和complete)

        assistants下有三个主要功能:

        Functions:函数调用功能,可以让assistants在对话中调用函数并返回结果

        Code interpreter:代码解释器,允许 Assistants API 在沙盒执行环境中编写和运行 Python 代码,让您的助手迭代运行代码以解决具有挑战性的代码和数学问题。 代码解释器每次会话收费 0.03 美元。

        Retrieval:检索工具,可基于文本数据进行检索后对话,主要支持pdf、docx、html、txt以及各种编程语言的后缀文件。该功能每个助手每天支付 0.20 美元/GB 的检索文件费用,就是费用与上传的文件大小有关。

        附上tools的原文档地址:https://platform.openai.com/docs/assistants/tools

  #本文目的#

        本文主要介绍openAI的assistants功能,并且使用assistants的retrieval功能进行基于私域数据的chatbot。

注:小厮认为这retrieve的实现可以参考一下这篇文章使用 LangChain、Pinecone 和 LLM(如 GPT-4 和 ChatGPT)构建基于文档的问答系统_langchain pinecone-CSDN博客

一、在openAI界面构建一个个性化assistant

#参数说明#

Name是你创建的当前机器人助手的名字;

Introduction是这个小助手的介绍(相当于你提示他现在是个啥角色);

Model:当前机器人使用的(LLM)模型;

TOOLS:助手提供的三种工具,上面有介绍;

Files:使用TOOLS必备的私域文件,点击add上传

#步骤#

(1)create一个助手,这里叫xxx chatbot233:

(2)填写name、introduction和model,还有上传你的私域(个性化)文件:

这里注意两个地方:

        a)  retrieval支持的model只有 gpt-4-1106-preview和 gpt-3.5-turbo-1106两个,选别的model下面TOOLS的Retrieval会变灰。

        b)  FILES上传文件有些古怪,我当时传docx后缀真是4都传不上去,一直报文件类型不支持,后来我把word转成pdf后就好了???如果docx解析不了就试试pdf吧。

(3)开始对话

        现在在最底下的文本框中输入你的问题,点击runs,你的专属chatbot就会根据你上传的文件内容回答你的问题啦。

二、利用python代码构建你的个性化assistants

  1. from openai import OpenAI
  2. import time
  3. import os
  4. # Upload a file with an "assistants" purpose
  5. client = OpenAI(
  6. api_key="你的openAPI key"
  7. )
  8. # import检索文件
  9. file = client.files.create(
  10. file=open("路径/文件", "rb"),
  11. purpose='assistants'
  12. )
  13. # Add the file to the new assistant
  14. assistant = client.beta.assistants.create(
  15. name="TSL chatbot233",
  16. instructions="你现在是我的客服小蜜,请根据上传文件内容回答客户问题",
  17. model="gpt-4-1106-preview",
  18. tools=[{"type": "retrieval"}],
  19. file_ids=[file.id]
  20. )
  21. # create a chat thread to save message
  22. thread = client.beta.threads.create()
  23. # 将Messages关联到Thread
  24. while True:
  25. # 获取用户输入
  26. user_input = input("请提问:")
  27. message = client.beta.threads.messages.create(
  28. thread_id=thread.id,
  29. role="user",
  30. content=user_input,
  31. file_ids=[file.id]
  32. )
  33. # 创建运行模型
  34. run = client.beta.threads.runs.create(
  35. thread_id=thread.id,
  36. assistant_id=assistant.id)
  37. # 获取gpt的answer
  38. while run.status != "completed":
  39. print(run.status)
  40. time.sleep(5)
  41. run = client.beta.threads.runs.retrieve(
  42. thread_id=thread.id,
  43. run_id=run.id
  44. )
  45. messages = client.beta.threads.messages.list(thread_id=thread.id)
  46. print(messages.data[0].content[0].text.value)

        直接运行就可以在终端进行对话:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/729191
推荐阅读
相关标签
  

闽ICP备14008679号