feat: add OpencodeGo AI provider (deepseek-v4-flash) as primary, existing providers as fallback
This commit is contained in:
@@ -4,5 +4,6 @@ from .deepl import DeepLProvider
|
||||
from .local import LocalProvider
|
||||
from .spark import SparkProvider
|
||||
from .sensenova import SensenovaProvider
|
||||
from .opencode_go import OpencodeGoProvider
|
||||
|
||||
__all__ = ["OpenAIProvider", "ClaudeProvider", "DeepLProvider", "LocalProvider", "SparkProvider", "SensenovaProvider"]
|
||||
__all__ = ["OpenAIProvider", "ClaudeProvider", "DeepLProvider", "LocalProvider", "SparkProvider", "SensenovaProvider", "OpencodeGoProvider"]
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
from app.ai.providers.openai import OpenAIProvider
|
||||
|
||||
|
||||
class OpencodeGoProvider(OpenAIProvider):
|
||||
def __init__(self, api_key: str, model: str = "deepseek-v4-flash", base_url: str = "https://opencode.ai/zen/go/v1"):
|
||||
super().__init__(api_key=api_key, model=model, base_url=base_url)
|
||||
self._name = f"opencode-go-{model}"
|
||||
@@ -1,6 +1,6 @@
|
||||
from typing import Dict, Any, Optional, List
|
||||
from app.ai.base import AIProvider
|
||||
from app.ai.providers import OpenAIProvider, ClaudeProvider, DeepLProvider, LocalProvider, SparkProvider, SensenovaProvider
|
||||
from app.ai.providers import OpenAIProvider, ClaudeProvider, DeepLProvider, LocalProvider, SparkProvider, SensenovaProvider, OpencodeGoProvider
|
||||
from app.config import settings
|
||||
from app.ai.trade_corpus import TradeCorpus
|
||||
import logging
|
||||
@@ -34,6 +34,17 @@ class AIRouter:
|
||||
except Exception as e:
|
||||
logger.warning(f"Sensenova init failed: {e}")
|
||||
|
||||
if settings.OPENCODE_GO_API_KEY:
|
||||
try:
|
||||
self.providers["opencode_go"] = OpencodeGoProvider(
|
||||
api_key=settings.OPENCODE_GO_API_KEY,
|
||||
model=settings.OPENCODE_GO_MODEL,
|
||||
base_url=settings.OPENCODE_GO_BASE_URL,
|
||||
)
|
||||
logger.info("OpencodeGo provider ready")
|
||||
except Exception as e:
|
||||
logger.warning(f"OpencodeGo init failed: {e}")
|
||||
|
||||
if settings.ANTHROPIC_API_KEY:
|
||||
try:
|
||||
self.providers["anthropic"] = ClaudeProvider(api_key=settings.ANTHROPIC_API_KEY)
|
||||
|
||||
Reference in New Issue
Block a user