Chuyển tới nội dung chính

Xưởng đúc AI Azure

Đại lý Hermes hỗ trợ Azure AI Foundry (và Azure OpenAI) với tư cách là nhà cung cấp hạng nhất. Một tài nguyên Azure có thể lưu trữ các mô hình với hai định dạng dây khác nhau:

  • kiểu OpenAIPOST /v1/chat/completions trên các điểm cuối như https://<resource>.openai.azure.com/openai/v1. Được sử dụng cho GPT-4.x, GPT-5.x, Llama, Mistral và hầu hết các mẫu có trọng lượng mở.
  • Phong cách nhân loạiPOST /v1/messages trên các điểm cuối như https://<resource>.services.ai.azure.com/anthropic. Được sử dụng khi Azure Foundry phục vụ các mô hình Claude thông qua định dạng API Thông điệp Anthropic.

Trình hướng dẫn thiết lập sẽ thăm dò điểm cuối của bạn và tự động phát hiện phương tiện vận chuyển nào được sử dụng, triển khai nào có sẵn và độ dài ngữ cảnh của từng mô hình.

Điều kiện tiên quyết

  • Tài nguyên Azure AI Foundry hoặc Azure OpenAI có ít nhất một lần triển khai
  • Khóa API cho tài nguyên đó (có sẵn trong Cổng thông tin Azure trong phần "Khóa và điểm cuối")
  • URL điểm cuối của việc triển khai

Bắt đầu nhanh

hermes model
# → Select "Azure Foundry"
# → Enter your endpoint URL
# → Enter your API key
# Hermes probes the endpoint and auto-detects transport + models
# → Pick a model from the list (or type a deployment name manually)

Trình hướng dẫn sẽ:

  1. Đánh hơi đường dẫn URL — Các URL kết thúc bằng /anthropic được công nhận là tuyến đường Azure Foundry Claude.
  2. Thăm dò GET <base>/models — nếu điểm cuối trả về danh sách mô hình có hình dạng OpenAI, Hermes sẽ chuyển sang chat_completions và điền sẵn ID triển khai được trả về vào bộ chọn.
  3. Thăm dò hình dạng Thông điệp Nhân loại — dự phòng cho các điểm cuối không hiển thị /models nhưng chấp nhận định dạng Thông điệp Nhân loại.
  4. Quay lại chế độ nhập thủ công — các điểm cuối riêng tư/có cổng từ chối mọi đầu dò vẫn hoạt động; bạn chọn chế độ API và nhập tên triển khai bằng tay.

Độ dài ngữ cảnh cho mô hình đã chọn được phân giải thông qua chuỗi siêu dữ liệu tiêu chuẩn của Hermes (models.dev, siêu dữ liệu của nhà cung cấp và dự phòng nhóm được mã hóa cứng) và được lưu trữ trong config.yaml để mô hình có thể điều chỉnh kích thước chính xác cho cửa sổ ngữ cảnh của chính nó.

Cấu hình (được ghi vào config.yaml)

Sau khi chạy trình hướng dẫn, bạn sẽ thấy một cái gì đó như thế này:

model:
provider: azure-foundry
base_url: https://my-resource.openai.azure.com/openai/v1
api_mode: chat_completions # or "anthropic_messages"
default: gpt-5.4-mini # your deployment / model name
context_length: 400000 # auto-detected

Và trong ~/.hermes/.env:

AZURE_FOUNDRY_API_KEY=<your-azure-key>

Điểm cuối kiểu OpenAI (GPT, Llama, v.v.)

Điểm cuối v1 GA của Azure OpenAI chấp nhận ứng dụng khách openai Python tiêu chuẩn với những thay đổi tối thiểu:

model:
provider: azure-foundry
base_url: https://my-resource.openai.azure.com/openai/v1
api_mode: chat_completions
default: gpt-5.4

Hành vi quan trọng:

  • GPT-5.x, codex và o-series tự động định tuyến tới API phản hồi. Azure Foundry triển khai các mô hình GPT-5 / codex / o1 / o3 / o4 dưới dạng chỉ dành cho API phản hồi — gọi /chat/completions đối với chúng sẽ trả về 400 "Thao tác được yêu cầu không được hỗ trợ.". Hermes phát hiện các họ mô hình này theo tên và nâng cấp api_mode lên codex_responses một cách minh bạch, ngay cả khi config.yaml vẫn đọc api_mode: chat_completions. GPT-4, GPT-4o, Llama, Mistral và các triển khai khác vẫn ở trạng thái /chat/completions.
  • max_completion_tokens được sử dụng tự động. Azure OpenAI (như OpenAI trực tiếp) yêu cầu max_completion_tokens cho các mô hình gpt-4o, o-series và gpt-5.x. Hermes gửi tham số phù hợp dựa trên điểm cuối.
  • Điểm cuối phiên bản trước v1 yêu cầu api-version. Nếu bạn có URL cơ sở cũ như https://<resource>.openai.azure.com/openai?api-version=2025-04-01-preview, Hermes sẽ trích xuất chuỗi truy vấn và chuyển tiếp chuỗi đó qua default_query theo mọi yêu cầu (nếu không thì SDK OpenAI sẽ loại bỏ chuỗi truy vấn đó khi nối các đường dẫn).

Điểm cuối kiểu nhân loại (Claude qua Azure Foundry)

Để triển khai Claude, hãy sử dụng lộ trình kiểu Anthropic:

model:
provider: azure-foundry
base_url: https://my-resource.services.ai.azure.com/anthropic
api_mode: anthropic_messages
default: claude-sonnet-4-6

Hành vi quan trọng:

  • /v1 bị loại bỏ khỏi URL cơ sở. Anthropic SDK thêm /v1/messages vào mọi URL yêu cầu — Hermes xóa mọi dấu /v1 trước khi chuyển URL cho SDK để tránh đường dẫn double-/v1.
  • api-version được gửi qua default_query, không được thêm vào URL. Azure Anthropic yêu cầu chuỗi truy vấn api-version. Việc đưa nó vào URL cơ sở sẽ tạo ra các đường dẫn không đúng định dạng như /anthropic?api-version=.../v1/messages và trả về 404. Thay vào đó, Hermes chuyển api-version=2025-04-15 thông qua default_query của Anthropic SDK.
  • Làm mới mã thông báo OAuth bị tắt. Việc triển khai Azure sử dụng khóa API tĩnh. Vòng làm mới mã thông báo OAuth ~/.claude/.credentials.json áp dụng cho Anthropic Console được bỏ qua rõ ràng đối với các điểm cuối Azure để ngăn mã thông báo Claude Code OAuth ghi đè khóa Azure của bạn giữa phiên.

Thay thế: nhà cung cấp: anthropic + URL cơ sở Azure

Nếu bạn đã định cấu hình provider: anthropic và chỉ muốn trỏ nó vào Azure AI Foundry cho Claude, bạn có thể bỏ qua hoàn toàn nhà cung cấp azure-foundry:

model:
provider: anthropic
base_url: https://my-resource.services.ai.azure.com/anthropic
key_env: AZURE_ANTHROPIC_KEY
default: claude-sonnet-4-6

Với AZURE_ANTHROPIC_KEY được đặt trong ~/.hermes/.env. Hermes phát hiện azure.com trong URL cơ sở và đoản mạch xung quanh chuỗi mã thông báo Claude Code OAuth nên khóa Azure được sử dụng trực tiếp với xác thực x-api-key.

key_env là tên trường snake_case chuẩn; api_key_env (và CamelCase keyEnv / apiKeyEnv) được chấp nhận làm bí danh. Nếu cả key_envAZURE_ANTHROPIC_KEY/ANTHROPIC_API_KEY đều được đặt, thì var env có tên key_env sẽ thắng.

Khám phá mô hình

Azure không hiển thị điểm cuối khóa API thuần túy để liệt kê các hoạt động triển khai mô hình đã triển khai của bạn. Việc liệt kê triển khai yêu cầu xác thực Trình quản lý tài nguyên Azure (danh sách triển khai tài khoản dịch vụ nhận thức az) bằng mã chính Azure AD, không phải khóa API suy luận.

Những gì Hermes có thể làm:

  • Điểm cuối Azure OpenAI v1 (<resource>.openai.azure.com/openai/v1) hiển thị GET /models với danh mục mô hình có sẵn của tài nguyên. Hermes sử dụng danh sách này để điền trước bộ chọn mẫu.
  • Các tuyến /anthropic của Azure Foundry: được phát hiện qua đường dẫn URL, tên mô hình được nhập thủ công.
  • Điểm cuối riêng tư/được tường lửa: nhập thủ công với thông báo "không thể thăm dò" thân thiện.

Bạn luôn có thể nhập trực tiếp tên triển khai — Hermes không xác thực dựa trên danh sách được trả về.

Biến môi trường

VariablePurpose
AZURE_FOUNDRY_API_KEYPrimary API key for Azure AI Foundry / Azure OpenAI
AZURE_FOUNDRY_BASE_URLEndpoint URL (set via hermes model; env var is used as a fallback)
AZURE_ANTHROPIC_KEYUsed by provider: anthropic + Azure base URL (alternative to ANTHROPIC_API_KEY)

Khắc phục sự cố

401 Không được phép khi triển khai gpt-5.x. Azure phân phát gpt-5.x trên /chat/completions, không phải /responses. Hermes tự động xử lý việc này khi URL chứa openai.azure.com, nhưng nếu bạn thấy 401 có nội dung Khóa API không hợp lệ, hãy kiểm tra xem api_mode trong config.yaml của bạn có phải là chat_completions hay không.

404 trên /v1/messages?api-version=.../v1/messages. Đây là lỗi URL không đúng định dạng từ quá trình thiết lập Azure Anthropic được sửa trước. Nâng cấp Hermes — tham số api-version hiện được chuyển qua default_query thay vì được đưa vào URL cơ sở, do đó SDK không thể làm hỏng tham số đó trong quá trình nối URL.

Trình hướng dẫn nói "Tự động phát hiện chưa hoàn tất." Điểm cuối đã từ chối cả thăm dò /models và thăm dò Thông điệp nhân loại. Điều này là bình thường đối với các điểm cuối riêng tư phía sau tường lửa hoặc có danh sách IP cho phép. Quay lại lựa chọn chế độ API thủ công và nhập tên triển khai của bạn — mọi thứ vẫn hoạt động, Hermes chỉ không thể điền trước bộ chọn.

Đã chọn sai phương tiện vận chuyển. Chạy lại hermes model và trình hướng dẫn sẽ thăm dò lại. Nếu đầu dò vẫn chọn sai chế độ, bạn có thể chỉnh sửa trực tiếp config.yaml:

model:
provider: azure-foundry
api_mode: anthropic_messages # or chat_completions

Có liên quan