package provider import ( "context" "git.mlow.ca/mlow/lmcli/pkg/api" ) type Chunk struct { Content string TokenCount uint } type RequestParameters struct { Model string MaxTokens int Temperature float32 TopP float32 Toolbox []api.ToolSpec } type ChatCompletionProvider interface { // CreateChatCompletion generates a chat completion response to the // provided messages. CreateChatCompletion( ctx context.Context, params RequestParameters, messages []api.Message, ) (*api.Message, error) // Like CreateChageCompletion, except the response is streamed via // the output channel. CreateChatCompletionStream( ctx context.Context, params RequestParameters, messages []api.Message, chunks chan<- Chunk, ) (*api.Message, error) }