You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
861 B
52 lines
861 B
2 years ago
|
package client
|
||
|
|
||
|
import "net/http"
|
||
|
|
||
|
type ClientOption func(c *Client)
|
||
|
|
||
|
func WithHTTPClient(httpClient *http.Client) ClientOption {
|
||
|
return func(c *Client) {
|
||
|
c.client = httpClient
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithEndpoint(endpoint string) ClientOption {
|
||
|
return func(c *Client) {
|
||
|
c.endpoint = endpoint
|
||
|
}
|
||
|
}
|
||
|
|
||
|
type InputOption func(d *InputData)
|
||
|
|
||
|
func NewInputData(opts ...InputOption) *InputData {
|
||
|
data := &InputData{}
|
||
|
for _, opt := range opts {
|
||
|
opt(data)
|
||
|
}
|
||
|
return data
|
||
|
}
|
||
|
|
||
|
func WithTopP(topP float64) InputOption {
|
||
|
return func(d *InputData) {
|
||
|
d.TopP = topP
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithTopK(topK int) InputOption {
|
||
|
return func(d *InputData) {
|
||
|
d.TopK = topK
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithTemperature(temperature float64) InputOption {
|
||
|
return func(d *InputData) {
|
||
|
d.Temperature = temperature
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithTokens(tokens int) InputOption {
|
||
|
return func(d *InputData) {
|
||
|
d.Tokens = tokens
|
||
|
}
|
||
|
}
|