OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  azure-proxy: 启用 Azure OpenAI 与 OpenClaw 的无缝集成

azure-proxy: 启用 Azure OpenAI 与 OpenClaw 的无缝集成

 
  ocmuuu ·  2026-02-02 05:54:48 · 3 次点击  · 0 条评论  

name: azure-proxy
description: 通过轻量级本地代理,实现 Azure OpenAI 与 OpenClaw 的集成。适用于以下场景:将 Azure OpenAI 配置为模型提供者时;在 OpenClaw 中使用 Azure OpenAI 遇到 404 错误时;或需要在 OpenClaw 子代理中使用 Azure 额度(例如 Visual Studio 订阅)。该代理解决了因 api-version 查询参数问题导致的 Azure OpenAI 无法直接集成的问题。


Azure OpenAI 代理(用于 OpenClaw)

一个轻量级的 Node.js 代理,用于桥接 Azure OpenAI 与 OpenClaw。

问题背景

OpenClaw 构建 API URL 的方式如下:

const endpoint = `${baseUrl}/chat/completions`;

而 Azure OpenAI 要求的 URL 格式为:

https://{resource}.openai.azure.com/openai/deployments/{model}/chat/completions?api-version=2025-01-01-preview

api-version 参数存在于 baseUrl 中时,OpenClaw 追加路径的操作会破坏 URL 结构。

快速设置

1. 配置并运行代理

# 设置您的 Azure 信息
export AZURE_OPENAI_ENDPOINT="your-resource.openai.azure.com"
export AZURE_OPENAI_DEPLOYMENT="gpt-4o"
export AZURE_OPENAI_API_VERSION="2025-01-01-preview"

# 运行代理
node scripts/server.js

2. 配置 OpenClaw 提供者

~/.openclaw/openclaw.json 中添加:

{
  "models": {
    "providers": {
      "azure-gpt4o": {
        "baseUrl": "http://127.0.0.1:18790",
        "apiKey": "YOUR_AZURE_API_KEY",
        "api": "openai-completions",
        "authHeader": false,
        "headers": {
          "api-key": "YOUR_AZURE_API_KEY"
        },
        "models": [
          { "id": "gpt-4o", "name": "GPT-4o (Azure)" }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "models": {
        "azure-gpt4o/gpt-4o": {}
      }
    }
  }
}

重要提示: 设置 authHeader: false —— Azure 使用 api-key 请求头,而非 Bearer 令牌。

3. (可选)用于子代理

通过将自动化任务路由至 Azure,以节省 Azure 额度:

{
  "agents": {
    "defaults": {
      "subagents": {
        "model": "azure-gpt4o/gpt-4o"
      }
    }
  }
}

作为 systemd 服务运行

复制模板并进行配置:

mkdir -p ~/.config/systemd/user
cp scripts/azure-proxy.service ~/.config/systemd/user/

# 使用您的 Azure 信息编辑服务文件
nano ~/.config/systemd/user/azure-proxy.service

# 启用并启动服务
systemctl --user daemon-reload
systemctl --user enable azure-proxy
systemctl --user start azure-proxy

环境变量

变量名 默认值 描述
AZURE_PROXY_PORT 18790 本地代理端口
AZURE_PROXY_BIND 127.0.0.1 绑定地址
AZURE_OPENAI_ENDPOINT Azure 资源主机名
AZURE_OPENAI_DEPLOYMENT gpt-4o 部署名称
AZURE_OPENAI_API_VERSION 2025-01-01-preview API 版本

健康检查

curl http://localhost:18790/health
# {"status":"ok","deployment":"gpt-4o"}

故障排除

404 资源未找到: 检查终端主机名和部署名称是否与 Azure 门户中的信息匹配。

401 未授权: API 密钥错误或已过期。

内容过滤错误: Azure 具有严格的内容过滤策略 —— 某些在 OpenAI 上可用的提示词可能会被阻止。

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor