Documentation
¶
Overview ¶
Package llm содержит реализации LLMProvider и StreamingLLMProvider для внешних провайдеров.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrTestStreaming = errors.New("test streaming error")
ErrTestStreaming — тестовая ошибка для streaming.
Functions ¶
This section is empty.
Types ¶
type ClaudeLLM ¶
type ClaudeLLM struct {
// contains filtered or unexported fields
}
ClaudeLLM реализует нативный клиент для Anthropic Messages API. @ds-task T1.2: Структура клиента и конструктор (DEC-001)
func NewClaudeLLM ¶
func NewClaudeLLM( httpClient *http.Client, baseURL string, apiKey string, model string, anthropicVersion string, temperature *float64, maxTokens *int, ) *ClaudeLLM
NewClaudeLLM создаёт клиент для Anthropic Messages API. Если httpClient == nil, используется http.DefaultClient. Если model == "", используется defaultAnthropicModel. Если anthropicVersion == "", используется defaultAnthropicVersion.
func (*ClaudeLLM) Generate ¶
Generate генерирует текстовый ответ на основе system и user сообщений. @ds-task T1.3: Generate реализация (AC-001, AC-002, AC-003)
func (*ClaudeLLM) GenerateStream ¶
func (c *ClaudeLLM) GenerateStream(ctx context.Context, systemPrompt, userMessage string) (<-chan string, error)
GenerateStream генерирует ответ токен за токеном через SSE streaming. Возвращает канал для чтения текстовых чанков; канал закрывается при завершении или ошибке. @ds-task T2.2: GenerateStream реализация (AC-004)
type MockStreamingLLM ¶
type MockStreamingLLM struct {
// Tokens — токены, которые будут отправлены в канал
Tokens []string
// Delay — задержка между токенами
Delay time.Duration
// Err — ошибка, которую нужно вернуть при инициализации streaming'а
Err error
// GenerateErr — ошибка для синхронного Generate
GenerateErr error
// GenerateResult — результат для синхронного Generate
GenerateResult string
}
MockStreamingLLM — мок-реализация StreamingLLMProvider для тестирования. Поддерживает controlled token emission, таймауты и ошибки.
@ds-task T3.2: Создать мок-реализацию StreamingLLMProvider (RQ-007)
func (*MockStreamingLLM) GenerateStream ¶
GenerateStream возвращает канал с токенами и опциональную задержку.
type MockStreamingLLMWithCancel ¶
MockStreamingLLMWithCancel — мок, который не закрывается до отмены контекста. Используется для тестирования обработки отмены контекста.
func (*MockStreamingLLMWithCancel) GenerateStream ¶
func (m *MockStreamingLLMWithCancel) GenerateStream(ctx context.Context, _, _ string) (<-chan string, error)
GenerateStream возвращает канал, который не закрывается сам.
type NonStreamingLLM ¶
NonStreamingLLM — мок, который НЕ реализует StreamingLLMProvider. Используется для тестирования graceful degradation.
type OllamaLLM ¶
type OllamaLLM struct {
// contains filtered or unexported fields
}
OllamaLLM реализует LLMProvider для локального Ollama API. @ds-task T1.1: Структура клиента и конструктор (AC-001, DEC-001, DEC-003)
func NewOllamaLLM ¶
func NewOllamaLLM( httpClient *http.Client, baseURL string, apiKey string, model string, temperature *float64, maxTokens *int, ) *OllamaLLM
NewOllamaLLM создаёт клиент для Ollama Chat API. Если httpClient == nil, используется http.DefaultClient. Если baseURL == "", используется ollamaDefaultBaseURL (http://localhost:11434). Если model == "", используется пустая строка (должна быть задана явно).
type OpenAICompatibleResponsesLLM ¶
type OpenAICompatibleResponsesLLM struct {
// contains filtered or unexported fields
}
OpenAICompatibleResponsesLLM реализует минимальный OpenAI-compatible Responses API клиент.
func NewOpenAICompatibleResponsesLLM ¶
func NewOpenAICompatibleResponsesLLM( httpClient *http.Client, baseURL string, apiKey string, model string, temperature *float64, maxOutputTokens *int, ) *OpenAICompatibleResponsesLLM
NewOpenAICompatibleResponsesLLM создаёт LLM-клиент для `POST /v1/responses`.
func (*OpenAICompatibleResponsesLLM) Generate ¶
func (l *OpenAICompatibleResponsesLLM) Generate(ctx context.Context, systemPrompt, userMessage string) (string, error)
Generate генерирует текстовый ответ на основе system и user сообщений.
func (*OpenAICompatibleResponsesLLM) GenerateStream ¶
func (l *OpenAICompatibleResponsesLLM) GenerateStream(ctx context.Context, systemPrompt, userMessage string) (<-chan string, error)
GenerateStream генерирует ответ токен за токеном через SSE streaming. Возвращает канал для чтения текстовых чанков; канал закрывается при завершении или ошибке.
@ds-task T2.1: Реализовать GenerateStream с SSE парсингом (AC-001, AC-003, AC-005, DEC-002) @ds-task T2.2: Обработка SSE edge cases (AC-005)