14个文本转图像AI API
如何用LLM和自有知识库搭建智能agent?
1.背景
llm大模型的强大能力可以让llm大模型充当智能机器人进行问答,比如作为企业的智能客服,回答一些常见的问题。但由于llm模型主要是基于通用数据的,对于特定数据的回答就难以胜任了。这就衍生了基于知识库的ai大模型方案。
以阿里云的通义千问智能机器人为例,其技术路线如下:
基本思路就是文本进行拆分,然后embeding成向量,存储到向量数据库,作为知识库,然后问答时从知识库查询,将查询到的向量以及匹配的文本,作为背景知识 ,加上固定的prompt,引导llm模型输出答案,如下代码所示,{{context}}即为背景知识。
"""
背景知识:
{{context}}
根据上述已知信息,简洁和专业的来回答用户的问题。
如果无法从中得到答案,请说 “根据已知信息无法回答该问题” 或 “没有提供足够的相关信息”,
不允许在答案中添加编造成分,答案请使用中文。
问题是:{{question}}
"""
2.开源方案介绍
除了类似阿里等商业方案,对于中小企业,可以考虑轻量级的开源方案。
调研了几个开源方案,从部署难易程度上选择了fastgpt。
2.1 fastgpt
FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景。
其技术栈如下:
fastgpt提供了基础的docker部署脚本,默认用openapi的接口,所以只需要一个openapi的token即可,考虑到openapi对国内有限制,可以考虑将服务器部署到国外服务器;当然也可以申请国内llm的token,比如百度文心一言、火星大模型等。
具体参考官方教程,熟悉docker的话,参考说明文档,修改openapi的token即可,还是比较简单的。
缺点是fastgpt的web端代码中不分代码写死了,比如有些地方固定用了中文的界面,对于英文应用稍显不足,不过也可以自己修改代码,编译之后更新docker容器。
fastgpt的模式是创建应用,然后应用可以关联知识库,知识库通过上传文档或者自定义生成,集成分成html链接和api 2种方式。
对话接口文档,主要配置appIDd,chatId和messages内容,messages指定role和content。
如果只是简单应用,可以考虑fastgpt,快速简单。
2.2 Langchain-Chatchat
Langchain-Chatchat主要利用langchain思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。通过使用FastChat接入 Vicuna, Alpaca, LLaMA, Koala, RWKV 等模型,依托于langchain框架支持通过基于FastAPI提供的 API 调用服务,或使用基于Streamlit的 WebUI 进行操作。
2.3 quivr
quivr构建了一个完全可控的知识库问答平台,支持docker部署,需要额外部署或者申请Supabase。
用法也比较简单,定义知识库,上传文档,问答时选定知识库即可。
文档支持更丰富,如Text, Markdown, PDF, Powerpoint, Excel, CSV, Word, Audio, Video。
2.4 DB-GPT
DB-GPT是一个开源的数据库领域大模型框架。目的是构建大模型领域的基础设施,通过开发多模型管理、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作等多种技术能力,让围绕数据库构建大模型应用更简单,更方便。
DB-GPT功能更强大,不仅支持文本问答,还支持图表展示。
本文章转载微信公众号@青稞AI