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_1AZURE_OPENAI_ENDPOINT_1AZURE_OPENAI_DEPLOYMENT_NAME_1AZURE_OPENAI_API_VERSION_1
Pipe2 环境变量:
AZURE_OPENAI_API_KEY_2AZURE_OPENAI_ENDPOINT_2AZURE_OPENAI_DEPLOYMENT_NAME_2AZURE_OPENAI_API_VERSION_2
并在各自类中修改环境变量的调用方式,从而实现互不干扰地运行两个实例。
结语
这个问题的关键在于配置隔离。对于需要并行使用多个 OpenAI 接口实例的情况,务必避免共用全局配置。希望这篇文章可以帮助遇到同样问题的开发者快速定位并解决。
发表回复