Private
Public Access
1
0

Wrap chunk content in a Chunk type

Preparing to include additional information with each chunk (e.g. token
count)
This commit is contained in:
2024-06-08 23:37:58 +00:00
parent c963747066
commit d2d946b776
8 changed files with 35 additions and 20 deletions

View File

@@ -10,6 +10,7 @@ import (
"git.mlow.ca/mlow/lmcli/pkg/lmcli"
"git.mlow.ca/mlow/lmcli/pkg/lmcli/model"
"git.mlow.ca/mlow/lmcli/pkg/lmcli/provider"
"git.mlow.ca/mlow/lmcli/pkg/util"
"github.com/charmbracelet/lipgloss"
)
@@ -17,7 +18,7 @@ import (
// Prompt prompts the configured the configured model and streams the response
// to stdout. Returns all model reply messages.
func Prompt(ctx *lmcli.Context, messages []model.Message, callback func(model.Message)) (string, error) {
content := make(chan string) // receives the reponse from LLM
content := make(chan provider.Chunk) // receives the reponse from LLM
defer close(content)
// render all content received over the channel
@@ -251,7 +252,7 @@ func ShowWaitAnimation(signal chan any) {
// chunked) content is received on the channel, the waiting animation is
// replaced by the content.
// Blocks until the channel is closed.
func ShowDelayedContent(content <-chan string) {
func ShowDelayedContent(content <-chan provider.Chunk) {
waitSignal := make(chan any)
go ShowWaitAnimation(waitSignal)
@@ -264,7 +265,7 @@ func ShowDelayedContent(content <-chan string) {
<-waitSignal
firstChunk = false
}
fmt.Print(chunk)
fmt.Print(chunk.Content)
}
}