Проблема с входными данными в маршрутизации MultiPromptChain — проблема с отсутствующими входными ключами
Я использую несколько цепочек RetrivalQA, каждая из которых имеет разные инструкции по форматированию и шаблоны подсказок. Чтобы справиться с этим, я использую MultiPromptChain из langchain, чтобы определить, в какую цепочку направлять входные данные. Однако, когда я пытаюсь выполнить цепочки, я сталкиваюсь со следующей ошибкой:
ValueError: Missing some input keys: {'query'}
Вот как я настроил свой класс CustomMultiPromptChain:
class CustomMultiPromptChain (MultiRouteChain):
destination_chains: Mapping[str, Chain]
"""Map of name to candidate chains that inputs can be routed to. Not restricted to LLM"""
Вот как я его инициализирую и использую:
destination_chains = {}
for p_info in prompt_infos:
name = p_info["name"]
chain_kwargs = p_info["kwargs"]
chain = RetrievalQA.from_chain_type(llm=ChatOpenAI(model="gpt-4"), chain_type="stuff", retriever=retriever, chain_type_kwargs=chain_kwargs)
destination_chains[name] = chain
chain = CustomMultiPromptChain(
router_chain=router_chain,
destination_chains=destination_chains,
default_chain=default_chain,
verbose=True,
)
chain({"input": input})
Я ожидал, что он запустит подсказку в правильной цепочке и предоставит выходные данные, но вместо этого я получаю эту ошибку, упомянутую выше. Я проверил ожидаемые входные ключи для каждой цепочки в Destination_chains. Я попытался изменить входную переменную с «вход» на «запрос» при вызове экземпляра цепочки.
Как я могу устранить ошибку?