From 4a441279fb903fca4677487ecc6a68985c1d6c4b Mon Sep 17 00:00:00 2001 From: syui Date: Tue, 3 Jun 2025 01:37:32 +0900 Subject: [PATCH] fix config --- README.md | 32 ++++++++++++++++++++++++++++++++ src/aigpt/ai_provider.py | 19 ++++++++++++++++++- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 11c6e13..690e10f 100644 --- a/README.md +++ b/README.md @@ -89,11 +89,43 @@ aigpt config set atproto.password your-password aigpt config list ``` +### AIモデルの設定 +```bash +# Ollamaのデフォルトモデルを変更 +aigpt config set providers.ollama.default_model llama3 + +# OpenAIのデフォルトモデルを変更 +aigpt config set providers.openai.default_model gpt-4 + +# Ollamaホストの設定 +aigpt config set providers.ollama.host http://localhost:11434 + +# 設定の確認 +aigpt config get providers.ollama.default_model +``` + ### データ保存場所 - 設定: `~/.config/syui/ai/gpt/config.json` - データ: `~/.config/syui/ai/gpt/data/` - 仮想環境: `~/.config/syui/ai/gpt/venv/` +### 設定ファイル構造 +```json +{ + "providers": { + "ollama": { + "host": "http://localhost:11434", + "default_model": "qwen3" + }, + "openai": { + "api_key": null, + "default_model": "gpt-4o-mini" + } + }, + "default_provider": "ollama" +} +``` + ## 使い方 ### 会話する diff --git a/src/aigpt/ai_provider.py b/src/aigpt/ai_provider.py index fa9dde5..780c4bf 100644 --- a/src/aigpt/ai_provider.py +++ b/src/aigpt/ai_provider.py @@ -187,9 +187,18 @@ Recent memories: return mood_responses.get(persona_state.current_mood, "I see.") -def create_ai_provider(provider: str = "ollama", model: str = "qwen2.5", **kwargs) -> AIProvider: +def create_ai_provider(provider: str = "ollama", model: Optional[str] = None, **kwargs) -> AIProvider: """Factory function to create AI providers""" if provider == "ollama": + # Get model from config if not provided + if model is None: + try: + from .config import Config + config = Config() + model = config.get('providers.ollama.default_model', 'qwen2.5') + except: + model = 'qwen2.5' # Fallback to default + # Try to get host from config if not provided in kwargs if 'host' not in kwargs: try: @@ -202,6 +211,14 @@ def create_ai_provider(provider: str = "ollama", model: str = "qwen2.5", **kwarg pass # Use environment variable or default return OllamaProvider(model=model, **kwargs) elif provider == "openai": + # Get model from config if not provided + if model is None: + try: + from .config import Config + config = Config() + model = config.get('providers.openai.default_model', 'gpt-4o-mini') + except: + model = 'gpt-4o-mini' # Fallback to default return OpenAIProvider(model=model, **kwargs) else: raise ValueError(f"Unknown provider: {provider}")