making go-chat iterative
This commit is contained in:
parent
96bc232b43
commit
d4a23e0700
@ -1,9 +1,11 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bufio"
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"os"
|
||||||
|
|
||||||
"github.com/ollama/ollama/api"
|
"github.com/ollama/ollama/api"
|
||||||
)
|
)
|
||||||
@ -19,18 +21,6 @@ func main() {
|
|||||||
Role: "system",
|
Role: "system",
|
||||||
Content: "Provide very brief, concise responses",
|
Content: "Provide very brief, concise responses",
|
||||||
},
|
},
|
||||||
api.Message{
|
|
||||||
Role: "user",
|
|
||||||
Content: "Name some unusual animals",
|
|
||||||
},
|
|
||||||
api.Message{
|
|
||||||
Role: "assistant",
|
|
||||||
Content: "Monotreme, platypus, echidna",
|
|
||||||
},
|
|
||||||
api.Message{
|
|
||||||
Role: "user",
|
|
||||||
Content: "which of these is the most dangerous?",
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
@ -39,13 +29,29 @@ func main() {
|
|||||||
Messages: messages,
|
Messages: messages,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
respString := ""
|
||||||
respFunc := func(resp api.ChatResponse) error {
|
respFunc := func(resp api.ChatResponse) error {
|
||||||
fmt.Print(resp.Message.Content)
|
respString += resp.Message.Content
|
||||||
|
if resp.Done {
|
||||||
|
fmt.Println("\t", respString)
|
||||||
|
messages = append(messages, api.Message{
|
||||||
|
Role: "assistant",
|
||||||
|
Content: respString,
|
||||||
|
})
|
||||||
|
respString = ""
|
||||||
|
}
|
||||||
return nil
|
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)
|
err = client.Chat(ctx, req, respFunc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user