基于LangChain搭建仅调用自定义数据的ChatBot基础示例请求
基于LangChain和自有数据搭建聊天机器人的简单实现
1. 安装依赖
首先安装所需Python包:
pip install langchain openai python-dotenv faiss-cpu
2. 配置环境
在项目根目录创建.env文件,填入你的OpenAI API密钥:
OPENAI_API_KEY=your-api-key-here
3. 核心代码实现
创建chatbot.py文件,内容如下:
from langchain.embeddings.openai import OpenAIEmbeddings from langchain.vectorstores import FAISS from langchain.text_splitter import CharacterTextSplitter from langchain.chains import RetrievalQA from langchain.llms import OpenAI from dotenv import load_dotenv import os # 加载环境变量 load_dotenv() # 读取自有数据文件 with open("mydata.txt", "r", encoding="utf-8") as f: raw_text = f.read() # 分割文本为适配向量存储的小片段 text_splitter = CharacterTextSplitter( separator="\n", chunk_size=1000, chunk_overlap=200, length_function=len, ) texts = text_splitter.split_text(raw_text) # 构建向量数据库 embeddings = OpenAIEmbeddings() db = FAISS.from_texts(texts, embeddings) # 创建检索式问答链 qa_chain = RetrievalQA.from_chain_type( llm=OpenAI(temperature=0), # 低温度保证回答贴合自有数据 chain_type="stuff", retriever=db.as_retriever(search_kwargs={"k": 1}), return_source_documents=True ) # 测试对话逻辑 user_query = "告诉我搭建树屋的方法" result = qa_chain({"query": user_query}) print("聊天机器人:", result["result"])
4. 运行说明
- 确保
mydata.txt与代码、.env文件在同一目录,文件内包含目标领域知识(如你提供的树屋搭建材料内容)。 - 执行
python chatbot.py即可触发对话,获取基于自有数据的回答。
内容的提问来源于stack exchange,提问作者user2570135
相关产品推荐
相关产品推荐

