feat: ghost text AI inline + Ollama qwen2.5-coder:1.5b
CI / lint (push) Failing after 7s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -6s

- Ollama provider ajoute dans ai.py (OpenAI-compatible API)
- Service ollama dans docker-compose (auto-pull qwen2.5-coder:1.5b)
- Ghost overlay dans Forge: prediction en texte pale apres le curseur
- Tab pour accepter, Escape pour rejeter, taper pour annuler
- Declenchement automatique apres 800ms de pause
- Scroll sync entre overlay et textarea
- Env vars: AI_DEFAULT_PROVIDER, OLLAMA_BASE_URL, OLLAMA_MODEL
This commit is contained in:
2026-06-16 11:42:28 -04:00
parent 994a6e1749
commit eef01ee32a
4 changed files with 136 additions and 1 deletions
+7 -1
View File
@@ -13,7 +13,7 @@ from typing import Optional, Literal
logger = logging.getLogger("obsigate.ai")
ProviderName = Literal["deepseek", "openrouter", "gemini"]
ProviderName = Literal["deepseek", "openrouter", "gemini", "ollama"]
# Provider configurations — keys loaded from file or .env
AI_KEYS_FILE = Path("data/api_keys.json")
@@ -54,6 +54,12 @@ def _load_provider_keys():
"model": os.getenv("GEMINI_MODEL", "gemini-2.0-flash"),
"auth_header": None,
},
"ollama": {
"api_key": "ollama",
"base_url": os.getenv("OLLAMA_BASE_URL", "http://ollama:11434/v1"),
"model": os.getenv("OLLAMA_MODEL", "qwen2.5-coder:1.5b"),
"auth_header": "Bearer {api_key}",
},
}
PROVIDERS = _load_provider_keys()