Process call analysis jobs in AI worker
All checks were successful
CI / test (push) Successful in 14s
Build and Deploy / build-and-deploy (push) Successful in 23s

This commit is contained in:
Grendgi
2026-06-08 14:33:01 +03:00
parent 038ad8d7cf
commit e9792274a4
2 changed files with 8 additions and 3 deletions

View File

@@ -24,8 +24,8 @@ service.
## Built-in workers
The first built-in worker processes `llm_chat` and `chat_completion` jobs whose
`model_profile` equals `LLM_MODEL`.
The first built-in worker processes `llm_chat`, `chat_completion` and
`call_analysis` jobs whose `model_profile` equals `LLM_MODEL`.
Input can be either explicit messages:
@@ -42,6 +42,10 @@ Input can be either explicit messages:
or compact `system` / `user` fields. The completed job result contains
`content`, `model`, `usage` and `duration_ms`.
`call_analysis` uses the same input contract as `llm_chat`; callers may include
domain metadata fields in `input`, but the worker only reads chat fields such as
`system`, `user`, `messages`, `max_tokens` and `response_format`.
## API
- `POST /api/v1/jobs` creates one job.

View File

@@ -15,6 +15,7 @@ import (
const (
TaskLLMChat = "llm_chat"
TaskChatCompletion = "chat_completion"
TaskCallAnalysis = "call_analysis"
)
type Worker struct {
@@ -72,7 +73,7 @@ func (w *Worker) tick(ctx context.Context) {
}
jobs, err := w.store.ClaimJobs(ctx, model.ClaimJobs{
WorkerID: w.workerID,
TaskTypes: []string{TaskLLMChat, TaskChatCompletion},
TaskTypes: []string{TaskLLMChat, TaskChatCompletion, TaskCallAnalysis},
ModelProfiles: []string{w.modelProfile},
Limit: w.claimLimit,
})