LangChain Python中使用AzureChatOpenAI添加Authorization请求头
解决方案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
相关产品推荐
相关产品推荐

