Funksiyalar
Chat va streaming
Model tanlash, multimodal xabarlar, reasoning, tool qismlari va stream xulqi.
Chat oqimi
Foydalanuvchi faqat active va o‘ziga ruxsat etilgan public model aliaslarini ko‘radi. Yangi xabar conversation va user message’ni saqlaydi, inference’ni stream qiladi va assistant message’ni yakuniy usage bilan persist qiladi.
- Model va kerak bo‘lsa reasoning darajasini tanlash.
- Matn va verified fayllarni bitta promptga biriktirish.
- Stream davomida tokenlarni inkremental ko‘rsatish va bekor qilish.
- Source/citation, web-search, reasoning va tool-call qismlarini alohida render qilish.
- Xatodan keyin suhbat kontekstini yo‘qotmasdan qayta urinish.
Model capability validatsiyasi
| Capability | Tekshiruv |
|---|---|
| Streaming | Provider adapter va model flag’i qo‘llashi kerak |
| Vision / file input | Fayl turi va model input capability mos bo‘lishi kerak |
| Reasoning | So‘ralgan effort model/provider tomonidan qo‘llanishi kerak |
| Tools / web search | Request va model capability mosligi oldindan tekshiriladi |
| Context window | Estimated input + reserved output limitdan oshmasligi kerak |
Unified event format
Stream ketma-ketligi
response_started
text_delta* | reasoning_delta* | tool_call_delta* | web_search*
usage?
completed | errorFrontend providerning xom SSE formatiga bog‘lanmaydi. Adapter Azure/OpenAI-compatible javobni platforma eventlariga aylantiradi, shu sababli UI bitta renderer ishlatadi.
Provider kontrakti
Adapter mas’uliyati
type Provider interface {
Generate(ctx context.Context, req Request) (*Response, error)
Stream(ctx context.Context, req Request) (<-chan Event, error)
ValidateRequest(req Request) error
CountOrEstimateTokens(ctx context.Context, req Request) (Usage, error)
TestConnection(ctx context.Context) error
ListModels(ctx context.Context) ([]Model, error)
NormalizeUsage(raw any) Usage
NormalizeError(err error) error
}