-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Azure OpenAI Serviceを利用できない不具合を修正 #275
Azure OpenAI Serviceを利用できない不具合を修正 #275
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Walkthroughこのプルリクエストは、 Changes
Possibly related PRs
Tip CodeRabbit's docstrings feature is now available as part of our Early Access Program! Simply use the command Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
src/features/stores/settings.ts (1)
Line range hint
234-241
: 環境変数の説明ドキュメントの追加を推奨Azure OpenAI Service関連の環境変数(
NEXT_PUBLIC_AZURE_KEY
、NEXT_PUBLIC_AZURE_ENDPOINT
)について、READMEやドキュメントへの説明追加を推奨します。
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/features/stores/settings.ts
(1 hunks)
🔇 Additional comments (3)
src/features/stores/settings.ts (3)
18-23
: マルチモーダルAIサービスへのAzureの追加が適切に行われています
定数配列への'azure'の追加は、Azure OpenAIサービスを有効にするために必要な変更です。
Line range hint 307-308
: 永続化の設定が適切に行われています
Azureの設定(azureKey
、azureEndpoint
)がpartialize
関数に正しく含まれており、設定の永続化が適切に実装されています。
Also applies to: 316-317
Line range hint 24-45
: 型システムの整合性を確認してください
Azure関連の型定義が正しく追加されていますが、以下の点を確認することを推奨します:
multiModalAIServiceKey
から派生する型が正しく更新されているかAPIKeys
インターフェースでAzure関連のプロパティが適切に定義されているか
✅ Verification successful
型システムの整合性が確認できました
検証の結果、以下の点が確認できました:
multiModalAIServices
配列に'azure'
が正しく含まれており、multiModalAIServiceKey
型に適切に反映されていますAPIKeys
インターフェースで定義されたazureKey
とazureEndpoint
は、アプリケーション全体で適切に使用されています:- 設定画面での入力処理(
modelProvider.tsx
) - APIリクエスト時の認証(
aiChat.ts
) - 音声合成機能(
speakCharacter.ts
) - チャット機能(
vercelAIChat.ts
)
- 設定画面での入力処理(
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Azure関連の型の使用箇所を確認
rg -t ts "azureKey|azureEndpoint" --type-list ts,tsx
Length of output: 444
Script:
#!/bin/bash
# Azure関連の型の使用箇所を確認(コマンドを修正)
rg -t ts "azureKey|azureEndpoint"
# multiModalAIServicesの定義を確認
ast-grep --pattern 'const multiModalAIServices = $_'
# APIKeysインターフェースの使用箇所を確認
rg -t ts "APIKeys"
Length of output: 2604
@PikkamanV PRありがとうございます!確認させていただきます!! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🔭 Outside diff range comments (1)
src/pages/api/convertSlide.ts (1)
Line range hint
219-222
: エラーハンドリングの改善が必要です現在のエラーハンドリングは一般的すぎるため、Azure OpenAI Service特有のエラーを適切に処理できない可能性があります。
以下のような改善を提案します:
} catch (error) { + if (aiService === 'azure') { + console.error('Azure OpenAI Service error:', error); + if (error.message.includes('authentication failed')) { + throw new Error('Azure OpenAI Service: 認証に失敗しました。APIキーとエンドポイントを確認してください。'); + } + if (error.message.includes('deployment')) { + throw new Error('Azure OpenAI Service: デプロイメント名が無効です。'); + } + throw new Error(`Azure OpenAI Service エラー: ${error.message}`); + } console.error('AI service request error:', error) throw new Error(`Failed to request AI service: ${error}`) }
🧹 Nitpick comments (1)
src/pages/api/convertSlide.ts (1)
Line range hint
167-222
: アーキテクチャの改善提案Azure OpenAI Serviceの統合をより堅牢にするため、以下の改善を検討してください:
- Azure OpenAI Service用の専用のクライアントファクトリクラスの作成
- 環境変数のバリデーション層の追加
- Azure固有の型定義の追加
- サービス固有の設定を別ファイルに分離
これにより、保守性が向上し、将来の機能追加も容易になります。
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/pages/api/convertSlide.ts
(1 hunks)
🔇 Additional comments (1)
src/pages/api/convertSlide.ts (1)
Line range hint 180-218
: Azure OpenAI Serviceの統合検証が必要です
現在の実装では、Azure OpenAI Serviceに特有のパラメータや設定が正しく処理されているか確認が必要です。
以下のスクリプトで統合をテストできます:
✅ Verification successful
Let me generate additional scripts to verify the Azure OpenAI Service integration more thoroughly.
This will help us understand how the Azure-specific parameters are handled in the generateObject function and the model instantiation process.
Azure OpenAI Serviceの統合は適切に実装されています
コードベースの分析から、以下の点が確認できました:
- Azure OpenAI Serviceのエンドポイントとデプロイメント名は正しく処理されています
generateObject
関数は、Azureを含む各AIサービスに対して適切なパラメータ構造を維持しています- モデル名の処理は
modifiedAzureDeployment
を通じて適切に行われています
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Azure OpenAI Service関連のコードを検索
# システムプロンプトでAzure固有の処理を確認
rg "azure" --type ts
# 環境変数の使用箇所を確認
rg "AZURE_" --type ts
# OpenAIクライアントの初期化部分を確認
ast-grep --pattern 'createOpenAI({ $$ })'
Length of output: 6223
Script:
#!/bin/bash
# Check generateObject implementation and Azure-specific handling
ast-grep --pattern 'generateObject($$$)'
# Check instance function implementation
ast-grep --pattern 'function instance($$$)'
# Check Azure-specific model handling
rg "modifiedAzureDeployment" -A 5 --type ts
Length of output: 3568
@@ -164,6 +164,7 @@ async function createSlideLine( | |||
openai: () => createOpenAI({ apiKey }), | |||
anthropic: () => createAnthropic({ apiKey }), | |||
google: () => createGoogleGenerativeAI({ apiKey }), | |||
azure: () => {}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Azure OpenAI Serviceの実装が不完全です
空の実装({}
)では、Azure OpenAI Serviceのリクエストを正しく処理できません。これにより、ランタイムエラーが発生する可能性があります。
以下のような実装を検討してください:
- azure: () => {},
+ azure: () => createOpenAI({
+ apiKey,
+ azure: {
+ apiKey,
+ endpoint: process.env.AZURE_OPENAI_ENDPOINT,
+ deploymentName: process.env.AZURE_OPENAI_DEPLOYMENT_NAME
+ }
+ }),
また、必要な環境変数を.env
ファイルに追加することをお忘れなく:
AZURE_OPENAI_ENDPOINT=your-endpoint-here
AZURE_OPENAI_DEPLOYMENT_NAME=your-deployment-name-here
Committable suggestion skipped: line range outside the PR's diff.
@tegnike 確認いただきましてありがとうございます。 |
@PikkamanV どうやら私の過去のリファクタリングでopenai, anthropic, google以外のモデルが使用できなくなっていたようです。 |
@tegnike 修正いただきましてありがとうございます。 |
@PikkamanV |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (1)
src/pages/api/convertSlide.ts (1)
167-167
:⚠️ Potential issueAzure OpenAI Serviceの実装が不完全です
空の実装では、Azure OpenAI Serviceのリクエストを正しく処理できません。
🧹 Nitpick comments (2)
src/pages/api/convertSlide.ts (2)
Line range hint
171-174
: エラーメッセージの改善が推奨されますエラーメッセージをより具体的にすることで、デバッグが容易になります。以下のような実装を検討してください:
- throw new Error('Invalid AI service') + throw new Error(`AIサービス "${aiService}" は無効です。サポートされているサービス: ${Object.keys(aiServiceConfig).join(', ')}`)
Line range hint
176-177
: 型安全性の向上が推奨されます
response.object
の型アサーションを安全に行うため、スキーマバリデーションの強化を検討してください。- return response.object as unknown as SlideLineResponse + const result = response.object + if (!result || typeof result.line !== 'string' || typeof result.notes !== 'string') { + throw new Error('AIサービスからの応答が無効な形式です') + } + return result as SlideLineResponse
@PikkamanV |
突然のp-r失礼します。
以下の変更を加えた後に関係しそうな機能の動作確認は行いましたが、リポジトリ全体を追えてはおりませんので、もしより適切な修正方法があればご教示いただけますと幸いです。
発生した事象
AI設定でAzure OpenAI Serviceを指定し、APIキーとEndpointを入力しても
Invalid AI service
エラーが生じるため返答を生成できませんでした。変更内容
aituber-kit/src/features/chat/vercelAIChat.ts
Lines 11 to 15 in 8aa8032
にて
multiModalAIServices
にazure
が含まれていないことが原因と考えられますので、Azure OpenAI Serviceがマルチモーダル対応していることを踏まえてazure
を追加しました。動作確認
実行環境: Node.js v20.11.0
AI設定; Azure OpenAI Service gpt-4o
音声設定: にじボイス
テキスト入力、画像入力(画面共有、カメラ、ファイル添付)それぞれに対して返答があり、音声が再生され、表情が反映されたことを確認しました。
Summary by CodeRabbit
新機能
groq
AIサービスのデフォルトモデルを'gemma-7b-it'
から'gemma2-9b-it'
に更新。groq
サービスに新しいモデルオプション'llama-3.3-70b-versatile'
を追加。'azure'
を追加。バグ修正