Skip to content

Conversation

@bot0419
Copy link
Collaborator

@bot0419 bot0419 commented Jul 7, 2025

Refactor Azure OpenAI Configuration - Issue #8 工作報告

任務:移除 deployment_id 欄位,改用 model 作為 Azure OpenAI 部署識別符。
類型:Refactor
狀態:已完成

一、任務概述

為簡化 AI 配置邏輯,統一各 AI 提供商的設定結構,需完全移除 Azure OpenAI 的 deployment_id 欄位,並改由 model 欄位直接存放部署名稱。此變更不考慮向後相容性。

二、實作內容

2.1 移除 deployment_id 欄位

  • 刪除 AIConfig 結構與預設值中的 deployment_id【F:src/config/mod.rs†L157-L162】【F:src/config/mod.rs†L184-L185】
  • 刪除配置服務中讀取與設定 deployment_id 的邏輯【F:src/config/service.rs†L287-L295】【F:src/config/service.rs†L359-L364】

2.2 更新 AzureOpenAIClient

  • 刪除客戶端結構與建構函式中 deployment_id 欄位與參數【F:src/services/ai/azure_openai.rs†L21-L29】【F:src/services/ai/azure_openai.rs†L33-L44】
  • from_config 中以 model 作為部署識別符,新增空值檢查【F:src/services/ai/azure_openai.rs†L61-L69】【F:src/services/ai/azure_openai.rs†L72-L80】
  • 修改 URL 組成使用 self.model【F:src/services/ai/azure_openai.rs†L171-L175】

2.3 更新驗證與欄位檢查

  • 刪除 validator 中對 deployment_id 的驗證邏輯【F:src/config/validator.rs†L101-L115】
  • 刪除欄位驗證器中的 ai.deployment_id 條目【F:src/config/field_validator.rs†L81-L89】【F:src/config/field_validator.rs†L208-L212】

2.4 更新測試與示例

  • 移除過時的 Azure OpenAI 測試檔案
  • 重構內部單元測試(azure_openai.rs)【F:src/services/ai/azure_openai.rs†L238-L279】
  • 修正 OpenAI/OpenRouter 客戶端測試,移除 deployment_id 並加入 api_version【F:src/services/ai/openai.rs†L146-L149】【F:src/services/ai/openai.rs†L168-L171】【F:src/services/ai/openrouter.rs†L516-L519】
  • 調整 config validator 測試,改以 model 驗證 Azure 部署名稱【F:src/config/validator.rs†L333-L340】

2.5 更新文件範例

  • 修改 Azure 範例,移除 deployment_id,改以 model 作為部署識別符【F:docs/configuration-guide.md†L70-L81】【F:README.md†L74-L82】【F:README.zh-TW.md†L69-L75】

三、測試與驗證

cargo fmt -- --check
cargo clippy -- -D warnings
cargo test

四、影響評估

向後相容性:刪除 legacy 欄位,不保持向後相容。使用者需將 deployment_id 值移至 model

Resolves #8

@codecov
Copy link

codecov bot commented Jul 7, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

📢 Thoughts on this report? Let us know!

bot0419 added 2 commits July 8, 2025 04:28
…oyment identifier

Resolves #8

Signed-off-by: CHEN, CHUN <jim60105@gmail.com>
Allow ProductionConfigService to read AZURE_OPENAI_DEPLOYMENT_ID and override the AI model deployment name from environment variables.

Signed-off-by: CHEN, CHUN <jim60105@gmail.com>
@jim60105 jim60105 force-pushed the issue-8-refactor-azure-openai-config branch from 81be012 to aa66b81 Compare July 7, 2025 20:29
@jim60105 jim60105 merged commit d83d92e into master Jul 7, 2025
6 checks passed
@jim60105 jim60105 deleted the issue-8-refactor-azure-openai-config branch July 7, 2025 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

重構 Azure OpenAI 配置:移除 deployment_id,使用 model 作為部署識別符

3 participants