42 lines
775 B
Go
42 lines
775 B
Go
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)
|
|
}
|