最新消息:

基于垂直行业知识库和ChatGPT搭建行业问答机器人的技术架构

技术 admin 1833浏览 1评论

随着OpenAI API开放后,诞生了诸多有趣的应用,例如 ChatGPT 开放API后,一些有趣的应用及思考 以及 HOTOKE AI,一个配备有ChatGPT的佛陪伴在您的身边

由于ChatGPT背后的gpt-3.5-turbo 大语言模型是一个通用模型,对很多垂直行业知识并无学习积累。因此最近经常有朋友问起:怎样将ChatGPT与某个行业知识库结合起来,构建垂直行业的问答机器人呢?

整理了一个垂直行业知识库与ChatGPT结合的技术架构,应该能够使用大部分应用场景。

 

整体流程:

0、将垂直行业的领域知识向量化并存入向量数据库

1、用户提问

2、用户问题向量化

3、查询向量数据库,得到TopN条匹配知识

4、构建Prompt,调用OpenAI API

5、返回回答

 

架构说明

1、Embeddgings model选择

要将领域知识向量化,需要有Embeddings model,最简单的方案是使用OpenAI的Embeddings API。

由于OpenAI的Embeddings model是通用模型,对垂直行业并不是最适合的,会出现回答不准确的情况。如果数据量较大,需要反复调用Embeddgins API,效率较低、成本较高。

可以考虑自己基于知识库自训练或基于一些现成的模型,HuggingFace上有很多Embeddings model可供参考使用。

2、向量数据库选择

向量数据库在相似文本搜索、个性化推荐、相似图片搜索等都有很好的应用场景。开源的向量数据库有qdrant,weaviate,milvus,elasticsearch等,推荐qdrant。

qdrant对常用的向量数据库的测试报告:https://qdrant.tech/benchmarks/

3、LLM框架

LangChain及LlamaIndex (原GPT Index)  这样的LLM框架,封装了很多LLM的工具,可以极大程度提升与LLM的集成效率。

LlamaIndex (原GPT Index) 入门门槛更低,入门文档也写得比较详尽。LangChain更为强大灵活,qdrant对LangChain的集成更好。

可以参考 https://news.ycombinator.com/item?id=34568343

4、调用OpenAI,构建的Prompt模板

Answer the question as truthfully the question as truthfully as possible using the provided text, and if the answer is not contained within the text below, say “I don’t know”

Context:
向量数据库科搜索结果的TopN 知识的拼接

Q: 用户提问

 

参考资料:

Question Answering with LangChain and Qdrant without boilerplate

document.ai

转载请注明:出家如初,成佛有余 » 基于垂直行业知识库和ChatGPT搭建行业问答机器人的技术架构

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 多谢梁总,这两天正想解决这个长文本的问题,这个方案太好了
    wzb1年前 (2023-03-14)回复