2024-05-30 23:51:22 +08:00

58 lines
970 B
Go

package main
import (
"bufio"
"context"
"fmt"
"log"
"os"
"github.com/ollama/ollama/api"
)
func main() {
client, err := api.ClientFromEnvironment()
if err != nil {
log.Fatal(err)
}
messages := []api.Message{
api.Message{
Role: "system",
Content: "Provide very brief, concise responses",
},
}
ctx := context.Background()
req := &api.ChatRequest{
Model: "llama3",
Messages: messages,
}
respString := ""
respFunc := func(resp api.ChatResponse) error {
respString += resp.Message.Content
if resp.Done {
fmt.Println("\t", respString)
messages = append(messages, api.Message{
Role: "assistant",
Content: respString,
})
respString = ""
}
return nil
}
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
req.Messages = append(req.Messages, api.Message{
Role: "user",
Content: scanner.Text(),
})
err = client.Chat(ctx, req, respFunc)
if err != nil {
log.Fatal(err)
}
}
}