Azure OpenAI Pipe
实例,以连接到不同的 Azure OpenAI 服务(不同模型或配置)。但是在运行时却出现了报错,API 请求失败。这让我意识到,这两个实例可能在配置上发生了冲突。
问题分析
原始 Pipe
类使用的是固定的环境变量名,例如:
AZURE_OPENAI_API_KEY_GPT
AZURE_OPENAI_ENDPOINT_GPT
AZURE_OPENAI_DEPLOYMENT_NAME_GPT
AZURE_OPENAI_API_VERSION_GPT
当我们在同一个进程中运行两个实例时,它们共用了同一套环境变量,因此无法正确区分各自的配置信息,从而导致 API 请求出错。
解决方案
为了解决这个问题,我使用了「方法一」:为每个实例创建独立的类和环境变量前缀。
我将原有的 Pipe 类复制为 Pipe1
和 Pipe2
,并分别引用以下环境变量:
Pipe1 环境变量:
AZURE_OPENAI_API_KEY_1
AZURE_OPENAI_ENDPOINT_1
AZURE_OPENAI_DEPLOYMENT_NAME_1
AZURE_OPENAI_API_VERSION_1
Pipe2 环境变量:
AZURE_OPENAI_API_KEY_2
AZURE_OPENAI_ENDPOINT_2
AZURE_OPENAI_DEPLOYMENT_NAME_2
AZURE_OPENAI_API_VERSION_2
并在各自类中修改环境变量的调用方式,从而实现互不干扰地运行两个实例。
结语
这个问题的关键在于配置隔离。对于需要并行使用多个 OpenAI 接口实例的情况,务必避免共用全局配置。希望这篇文章可以帮助遇到同样问题的开发者快速定位并解决。
发表回复