Files
2026-01-19 02:10:24 -06:00

51 lines
954 B
Go

package silicon
import (
"context"
"rss-to-feishu-next/internal/config"
"rss-to-feishu-next/internal/net"
)
type Client struct {
netClient *net.Client
}
func NewClient(client *net.Client) *Client {
return &Client{client}
}
func (c *Client) FetchModelResponse(ctx context.Context, message, model string) (*Response, error) {
cfg, err := config.LoadConfig()
if err != nil {
return nil, err
}
token := cfg.Silicon.Token
headers := map[string]string{
"Content-Type": "application/json",
"Authorization": "Bearer " + token,
}
var messages []*Message
messages = append(messages, &Message{
Role: "user",
Content: message,
})
body := &RequestBody{
Model: model,
Messages: messages,
Temperature: 0.7,
MaxTokens: 8096,
}
var resp *Response
url := "https://api.siliconflow.cn/v1/messages"
if err := c.netClient.Post(ctx, headers, url, body, &resp); err != nil {
return nil, err
}
return resp, nil
}