You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PromptTemplate集成到LangChain与ChromaDB的问答链中?

如何将客服场景PromptTemplate集成到LangChain-ChromaDB问答代码中

问题背景

现有一段基于LangChain和ChromaDB的向量存储查询代码,需要集成客服场景的自定义PromptTemplate,让大语言模型以客服身份回答用户问题。

集成步骤

核心是在加载问答链(load_qa_chain)时,将自定义的SALES_PROMPT传入,替换默认的提示词模板。具体修改如下:

  • 保留原有的客服场景PromptTemplate定义,确保其包含context和question两个输入变量;
  • 调用load_qa_chain时,通过prompt参数传入自定义的SALES_PROMPT;
  • 向量存储查询、文档匹配等原有逻辑保持不变。

修改后的完整代码

# 嵌入文本
from langchain.embeddings import SentenceTransformerEmbeddings
embeddings = SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2")

# 初始化Chroma向量存储
from langchain.vectorstores import Chroma
db = Chroma(persist_directory="./chroma_db", embedding_function=embeddings)

# 配置OpenAI大语言模型
import os
os.environ["OPENAI_API_KEY"] = 'sk-12345678910'

from langchain.chat_models import ChatOpenAI
model_name = "gpt-3.5-turbo"
llm = ChatOpenAI(model_name=model_name)

# 定义客服场景PromptTemplate
sales_template = """You are customer services and you need to help people.
{context}
Question: {question}"""
SALES_PROMPT = PromptTemplate(
    template=sales_template, input_variables=["context", "question"]
)

# 加载带自定义提示词的问答链
from langchain.chains.question_answering import load_qa_chain
chain = load_qa_chain(llm, chain_type="stuff", prompt=SALES_PROMPT, verbose=True)

# 执行查询与问答
query = "What does Neil do for work?"
matching_docs = db.similarity_search(query)
answer = chain.run(input_documents=matching_docs, question=query)
print(answer)

关键说明

  • chain_type="stuff"表示将所有匹配到的文档内容拼接后传入提示词,适合文档内容较短的场景;
  • 自定义提示词中的{context}会被匹配到的文档内容自动填充,{question}会被用户的查询内容填充;
  • 开启verbose=True可以查看大语言模型接收的完整提示词内容,方便调试模板效果。

内容的提问来源于stack exchange,提问作者VGA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 03:16:01