Bug描述
PydanticSelector验证失败,因为它期望一个LlamaIndex OpenAI llm。作为一个LangChainLLM,OpenAILike llm也可以被提供,所以这个验证不应该限制这些llms在选择器中的使用。
版本
^0.10.55
重现步骤
LangChainLLM(
ChatOpenAI(
model=DEFAULT_FAST_MODEL,
max_tokens=512,
api_key=config.openai.api_key,
base_url=config.openai.api_base,
model_kwargs={
"extra_body": {
"customer_identifier": auth.user_id,
"metadata": {"service": "retrieval"},
}
},
)
)
}
LLMSingleSelector.from_defaults(llm=llm)
相关日志/回溯
- 无响应*
2条答案
按热度按时间py49o6xq1#
要解决
PydanticSelector
与LangChainLLM
一起使用时失败的问题,您需要修改验证逻辑以接受LangChainLLM
示例。以下是如何更新PydanticSelector
类以支持LangChainLLM
的方法:LangChainLLM
。以下是修改验证逻辑的示例:
此修改确保
PydanticSelector
类可以识别和验证LangChainLLM
示例以及OpenAI
和其他兼容LLMs 1(https://github.com/run-llama/llama_index/blob/main/llama-index-integrations/llms/llama-index-llms-langchain/llama_index/llms/langchain/base.py)2(https://github.com/run-llama/llama_index/blob/main/llama-index-legacy/llama_index/legacy/llms/utils.py)3(https://github.com/run-llama/llama_index/blob/main/llama-index-integrations/llms/llama-index-llms-langchain/llama_index/llms/langchain/init.py)。l0oc07j22#
Langchain llm是一个通用的 Package 器,它不知道底层的llm是什么。由于langchain llm类没有实现函数调用,因此不能将其用作pydantic选择器。您需要使用常规的llm选择器,或者从llamaindex使用openai llm。