在人工智能开发中,调用多种第三方大模型(如 OpenAI、DeepSeek、阿里云等)是常见的需求。本文将详细介绍如何通过 LangChain 和 .env 文件加载环境变量,并灵活配置多个模型的调用方式。无论你是初学者还是资深开发者,都能从中受益!


完整代码实现

以下代码支持调用多种第三方大模型,并通过 .env 文件安全存储 API Key 和 Base URL。

import os
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

# 1. 配置 SiliconFlow 模型
siliconflow_api_key = os.getenv("SILICONFLOW_API_KEY")
siliconflow_agent_llm = ChatOpenAI(
    base_url="https://api.siliconflow.cn/v1",
    api_key=siliconflow_api_key,
    model="Pro/deepseek-ai/DeepSeek-V3",  # 指定模型
    max_tokens=4096,                      # 最大生成 token 数
    request_timeout=120,                  # 增加请求超时时间
    max_retries=3                         # 添加重试次数
)

# 2. 配置 OpenAI 模型
openai_api_key = os.getenv("OPENAI_API_KEY")
openai_agent_llm = ChatOpenAI(
    base_url="https://api.openai.com/v1",
    api_key=openai_api_key,
    model="gpt-4o",                       # 指定模型
    temperature=0.3,
    max_tokens=5120,
    request_timeout=180,
    max_retries=3
)

# 3. 配置 Nebius 模型
nebius_api_key = os.getenv("Nebius_DeepSeek_API_KEY")
nebius_agent_llm = ChatOpenAI(
    base_url="https://api.studio.nebius.ai/v1/",
    api_key=nebius_api_key,
    model="deepseek-ai/DeepSeek-V3",     # 指定模型
    max_tokens=2048
)

# 4. 配置 OpenRouter 模型
openrouter_api_key = os.getenv("OPENROUTER_API_KEY")
openrouter_agent_llm = ChatOpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key=openrouter_api_key,
    model="openai/gpt-4o",               # 指定模型
    temperature=0.7,
    max_tokens=4096,
    request_timeout=120,                 # 增加请求超时时间
    max_retries=2                        # 添加重试次数
)

# 5. 配置阿里云模型
aliyun_api_key = os.getenv("ALIYUN_API_KEY")
aliyun_agent_llm = ChatOpenAI(
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    api_key=aliyun_api_key,
    model="deepseek-v3",                 # 指定模型
    temperature=1.0,
    max_tokens=4096,
    request_timeout=120,                 # 增加请求超时时间
    max_retries=3                        # 添加重试次数
)

# 6. 配置智谱 AI 模型
zhipuai_api_key = os.getenv("ZHIPUAI_API_KEY")
zhipuai_agent_llm = ChatOpenAI(
    base_url="https://open.bigmodel.cn/api/paas/v4",
    api_key=zhipuai_api_key,
    model="glm-4-plus",                  # 指定模型
    temperature=0.7,
    max_tokens=4096,
    request_timeout=120,                 # 增加请求超时时间
    max_retries=3                        # 添加重试次数
)

# 7. 配置 DeepSeek 模型
deepseek_api_key = os.getenv("DeepSeek_API_KEY")
deepseek_agent_llm = ChatOpenAI(
    base_url="https://api.deepseek.com/v1",
    api_key=deepseek_api_key,
    model="deepseek-chat",               # 指定模型
    temperature=0.7,
    max_tokens=4096,
    request_timeout=120,                 # 增加请求超时时间
    max_retries=3                        # 添加重试次数
)

.env 文件

以下是完整的 .env 文件内容,包含所有平台的 API Key 和 Base URL:

# SILICONFLOW API Key
SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1
SILICONFLOW_API_KEY=your_siliconflow_api_key

# OPENAI API Key
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_API_KEY=your_openai_api_key

# NEBIUS API Key
Nebius_BASE_URL=https://api.studio.nebius.ai/v1
Nebius_DeepSeek_API_KEY=your_nebius_api_key

# OPENROUTER API Key
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
OPENROUTER_API_KEY=your_openrouter_api_key

# ALIYUN API Key
ALIYUN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
ALIYUN_API_KEY=your_aliyun_api_key

# ZHIPUAI API Key
ZHIPUAI_BASE_URL=https://open.bigmodel.cn/api/paas/v4
ZHIPUAI_API_KEY=your_zhipuai_api_key

# DEEPSEEK API Key
DeepSeek_BASE_URL=https://api.deepseek.com/v1
DeepSeek_API_KEY=your_deepseek_api_key

# TENCENT API Key
TENCENT_BASE_URL=https://api.lkeap.cloud.tencent.com/v1
TENCENT_API_KEY=your_tencent_api_key

注意:请将 your_xxx_api_key 替换为实际的 API Key。


运行与验证

1. 测试模型调用

可以通过以下代码测试任意模型是否正常工作。例如,测试 SiliconFlow 模型:

response = siliconflow_agent_llm.invoke("推荐一些北京的旅游景点")
print(response)

2. 验证结果

如果模型返回了预期的结果(如景点列表),说明调用成功。


总结与思考

通过以上步骤,我们可以轻松调用多种第三方大模型,并通过 .env 文件安全存储敏感信息。关键在于:

  1. 环境变量管理:通过 .env 文件统一管理 API Key 和 Base URL。
  2. 灵活配置:根据不同的 API 平台调整 ChatOpenAI 的参数。
  3. 扩展性:支持多种模型和平台,满足不同场景的需求。

如果你有其他问题或遇到特殊情况,欢迎在评论区留言交流!


推荐阅读

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐