AI implementation for openai and claude.

This commit is contained in:
2026-01-15 21:20:30 +01:00
parent fe70f3892c
commit 5bbec0e240
20 changed files with 623 additions and 24 deletions

View File

@@ -0,0 +1,27 @@
from abc import ABC, abstractmethod
from typing import AsyncGenerator
class AIProvider(ABC):
"""Abstract base class for AI providers"""
def __init__(self, api_key: str, model: str):
self.api_key = api_key
self.model = model
@abstractmethod
async def chat(self, message: str, system_prompt: str = None) -> str:
"""Non-streaming chat"""
pass
@abstractmethod
async def chat_stream(
self, message: str, system_prompt: str = None
) -> AsyncGenerator[str, None]:
"""Streaming chat - yields chunks of text"""
pass
@abstractmethod
def get_provider_name(self) -> str:
"""Return provider identifier"""
pass