You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LangChain Python中使用AzureChatOpenAI添加Authorization请求头

为LangChain的AzureChatOpenAI添加自定义Authorization请求头适配API网关

解决方案1:全局设置OpenAI请求头

通过修改OpenAI Python库的全局会话headers,让所有基于该库的请求(包括LangChain的调用)都携带指定的Authorization头:

import os
import openai
from langchain.chat_models import AzureChatOpenAI
from langchain.schema import HumanMessage

# 加载配置
token = os.getenv("AZURE_OPENAI_API_KEY")
gateway_url = "xyz-gateway@test.com"
api_version = "2023-05-15"
deployment_name = "semantic-query-expansion"

# 配置OpenAI全局参数
openai.api_type = "azure"
openai.api_key = token
openai.api_base = gateway_url
openai.api_version = api_version

# 为全局会话添加自定义Authorization头
openai.requestssession.headers.update({"Authorization": token})

# 初始化AzureChatOpenAI
model = AzureChatOpenAI(
    deployment_name=deployment_name
)

# 测试调用
response = model(
    [
        HumanMessage(
            content="Translate this sentence from English to Bengali. I love programming."
        )
    ]
)
print(response.content)

解决方案2:传递自定义HTTP Client

创建带有自定义headers的requests.Session,初始化AzureChatOpenAI时传入该会话,实现请求头的自定义:

import os
import requests
from langchain.chat_models import AzureChatOpenAI
from langchain.schema import HumanMessage

# 加载配置
token = os.getenv("AZURE_OPENAI_API_KEY")
gateway_url = "xyz-gateway@test.com"
api_version = "2023-05-15"
deployment_name = "semantic-query-expansion"

# 创建自定义会话并添加Authorization头
session = requests.Session()
session.headers.update({"Authorization": token})

# 初始化AzureChatOpenAI并传入自定义会话
model = AzureChatOpenAI(
    openai_api_type="azure",
    openai_api_key=token,
    openai_api_base=gateway_url,
    openai_api_version=api_version,
    deployment_name=deployment_name,
    http_client=session
)

# 测试调用
response = model(
    [
        HumanMessage(
            content="Translate this sentence from English to Bengali. I love programming."
        )
    ]
)
print(response.content)

说明

两种方案的核心原理都是利用LangChain对OpenAI Python库的依赖:

  • 方案1通过全局修改OpenAI的会话配置,让所有请求自动携带指定头,适合需要全局统一配置的场景。
  • 方案2通过传递自定义HTTP客户端,实现更细粒度的请求控制,适合不同实例需要不同头的场景。

内容的提问来源于stack exchange,提问作者deb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 19:13:27