mirror of
https://github.com/ollama/ollama.git
synced 2025-12-05 18:46:22 -06:00
45 lines
950 B
Go
45 lines
950 B
Go
package server
|
|
|
|
import (
|
|
"github.com/ollama/ollama/api"
|
|
"github.com/ollama/ollama/llm"
|
|
)
|
|
|
|
// toAPILogprobs converts llm.Logprobs to api.Logprobs
|
|
func toAPILogprobs(logprobs []llm.Logprob) []api.Logprob {
|
|
result := make([]api.Logprob, len(logprobs))
|
|
for i, lp := range logprobs {
|
|
result[i] = api.Logprob{
|
|
TokenLogprob: api.TokenLogprob{
|
|
Token: lp.Token,
|
|
Bytes: stringToByteInts(lp.Token),
|
|
Logprob: lp.Logprob,
|
|
},
|
|
}
|
|
if len(lp.TopLogprobs) > 0 {
|
|
result[i].TopLogprobs = make([]api.TokenLogprob, len(lp.TopLogprobs))
|
|
for j, tlp := range lp.TopLogprobs {
|
|
result[i].TopLogprobs[j] = api.TokenLogprob{
|
|
Token: tlp.Token,
|
|
Bytes: stringToByteInts(tlp.Token),
|
|
Logprob: tlp.Logprob,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return result
|
|
}
|
|
|
|
func stringToByteInts(s string) []int {
|
|
if s == "" {
|
|
return nil
|
|
}
|
|
|
|
raw := []byte(s)
|
|
ints := make([]int, len(raw))
|
|
for i, b := range raw {
|
|
ints[i] = int(b)
|
|
}
|
|
return ints
|
|
}
|