前言
随着OPENAI开放API接口后,各大厂商的AI如雨后春笋般涌现,如同十年前的互联网大火,未来的风口必然是在AI上。
当然,基于自训模型/自研AI 门槛过高,不是个人或中小厂能干的,而且即使有也与OPENAI差距不小,因此一般人能卷的也只有应用层了。
基于此背景,我开始研究基于GPT的自定义数据索引问答机器人,接着我发现了llama_index和langchain这两个框架,在此记录一下它的使用方法。
langchain: GitHub - hwchase17/langchain: ⚡ Building applications with LLMs through composability ⚡
OPENAI模型微调?
最初我尝试使用OPENAI的模型微调,我试着弄了几百KB的文本数据喂进去,然而发现当我使用微调模型对话时AI的回复总是只言片语连一句完整的句子都无法返回。
通过搜索资料后我意识到模型微调不是几百或者几兆文本数据就能达到我想要的目地的。
最终我发现llama_index + langchain可以实现想要的效果
llama_index + langchian实现智能问答机器人
step 1.安装环境
安装python3.10以上版本
安装依赖库:
pip install llama-index
pip install openai
pip install langchain
pip install pandas
准备OPENAI的API KEY
step 2.准备数据
准备好机器人要回答的资料库,可以有PDF、HTML、WORD文档、SQL、API接口甚至GITHUB、WIKI等网络资源也可以,在本章我将使用简单的TXT文本,举例大概内容如下:
塞尔达传说:王国之泪什么时候出? 《塞尔达传说:王国之泪》将于2023年5月12日发售哦,敬请期待!
step 3.编写python代码
1 | from llama_index import SimpleDirectoryReader, ServiceContext, GPTVectorStoreIndex, PromptHelper,load_index_from_storage,StorageContext |
final step.运行py文件
运行python代码看看是否能正常回答资料库中问题
后续可优化的点:
使用websocket + 流试输出实现类似打字机的效果,流式输出反应较快用户体验较好
记录下用户的历史对话上下文
集成资料库问答+聊天为一体的机器人,自动识别属于资料问答还是普通聊天
推荐GPT相关项目
GPT4-FREE:GitHub - xtekky/gpt4free: decentralising the Ai Industry, just some language model api's…
OPENAI-JAVA:GitHub - TheoKanning/openai-java: OpenAI GPT-3 Api Client in Java
- 本文作者: reiner
- 本文链接: https://reiner.host/posts/8f0289a0.html
- 版权声明: 转载请注明出处,并附上原文链接