Проблема с входными данными в маршрутизации 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. Я попытался изменить входную переменную с «вход» на «запрос» при вызове экземпляра цепочки.

Как я могу устранить ошибку?

0 ответов

Другие вопросы по тегам