解决同时运行多个 Azure OpenAI Pipe 实例的冲突问题

我在开发过程中需要同时运行两个 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 类复制为 Pipe1Pipe2,并分别引用以下环境变量:

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 接口实例的情况,务必避免共用全局配置。希望这篇文章可以帮助遇到同样问题的开发者快速定位并解决。


已发布

分类

,

来自

标签:

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注