Fix token_to_piece implementation in Swift
This commit is contained in:
parent
1d144112c0
commit
67d2bd2466
2 changed files with 22 additions and 1 deletions
|
@ -242,6 +242,16 @@ private func token_to_piece(token: llama_token, buffer: inout [CChar]) -> String
|
|||
Int32(result.count)
|
||||
)
|
||||
assert(check == nTokens)
|
||||
} else if nTokens > 8 {
|
||||
result.removeAll()
|
||||
result = [CChar](repeating: 0, count: nTokens)
|
||||
let check = llama_token_to_piece(
|
||||
model,
|
||||
token,
|
||||
&result,
|
||||
Int32(result.count)
|
||||
)
|
||||
assert(check == nTokens)
|
||||
} else {
|
||||
result.removeLast(result.count - Int(nTokens))
|
||||
}
|
||||
|
|
|
@ -165,7 +165,18 @@ actor LlamaContext {
|
|||
let result = UnsafeMutablePointer<Int8>.allocate(capacity: 8)
|
||||
result.initialize(repeating: Int8(0), count: 8)
|
||||
|
||||
let _ = llama_token_to_piece(model, token, result, 8)
|
||||
let nTokens = llama_token_to_piece(model, token, result, 8)
|
||||
|
||||
if nTokens > 8 {
|
||||
result.removeAll()
|
||||
result = [CChar](repeating: 0, count: nTokens)
|
||||
_ = llama_token_to_piece(
|
||||
model,
|
||||
token,
|
||||
&result,
|
||||
Int32(result.count)
|
||||
)
|
||||
}
|
||||
|
||||
let resultStr = String(cString: result)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue