基于LLM搭建一个AI问答系统,步骤备忘录
工具
Langchain4J,适应于java语言,对应python语言的是 Langchain
步骤
准备环境
- 下载大模型,使用ollama工具下载并运行大模型,类似docker的使用方式,ollma pull llama3; ollma run llama3
- 下载向量数据库,并启动
编写代码
初始化知识库
- maven依赖中导入Langchain4j的包
- 使用Langchain4j的函数,加载本地文件,这是作为AI问答系统的知识库源数据的目的
- 使用Langchain4j的文档切割工具,将本地文件切分为segments
-
利用大模型的EmbeddingModel模型,这个模型是将普通的文本转化为高维度的向量。将segments作为输入,存入上面的向量数据库
流程图如下:
查询
- 利用同一个EmbeddingModel模型,将查询文本转化为embedding
- 使用embedding在向量库中检索到匹配的segment
- 继续利用大模型推理构建输出。这个需要基于向量库的segment,构建Prompt词。例如, “基于信息回答提问。信息:segment, 提问:xxx?”
- 将prompt提示词输入给大模型ollamaChatModel,输出的结果,就是最终的结果了