无法将提示模板传递给Langchain中的RetrievalQA

我是Langchain的新手,我按照这个Retrieval QA – Langchain的指南进行操作。我有一个自定义的提示,但当我尝试通过chain_type_kwargs传递提示时,在pydanticStuffDocumentsChain中抛出了错误。而当我移除chain_type_kwargs后,它就正常工作了。

如何传递提示呢?

错误

File /usr/local/lib/python3.11/site-packages/pydantic/main.py:341, in pydantic.main.BaseModel.__init__()ValidationError: 1 validation error for StuffDocumentsChain__root__  document_variable_name context was not found in llm_chain input_variables: ['question'] (type=value_error)

代码

import json, osfrom langchain.chains import RetrievalQAfrom langchain.llms import OpenAIfrom langchain.document_loaders import JSONLoaderfrom langchain.text_splitter import CharacterTextSplitterfrom langchain.embeddings.openai import OpenAIEmbeddingsfrom langchain.vectorstores import Chromafrom langchain.chat_models import ChatOpenAIfrom langchain import PromptTemplatefrom pathlib import Pathfrom pprint import pprintos.environ["OPENAI_API_KEY"] = "my-key"def metadata_func(record: dict, metadata: dict) -> dict:    metadata["drug_name"] = record["drug_name"]    return metadataloader = JSONLoader(    file_path='./drugs_data_v2.json',     jq_schema='.drugs[]',    content_key="data",    metadata_func=metadata_func)docs = loader.load()text_splitter = CharacterTextSplitter(chunk_size=5000, chunk_overlap=200)texts = text_splitter.split_documents(docs)embeddings = OpenAIEmbeddings()docsearch = Chroma.from_documents(texts, embeddings)template = """/example custom prommptQuestion: {question}Answer: """PROMPT = PromptTemplate(template=template, input_variables=['question'])qa = RetrievalQA.from_chain_type(        llm=ChatOpenAI(           model_name='gpt-3.5-turbo-16k'           ),    chain_type="stuff",    chain_type_kwargs={"prompt": PROMPT},    retriever=docsearch.as_retriever(),)query = "What did the president say about Ketanji Brown Jackson"qa.run(query)

回答:

模板中缺少{context}。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注