feat: stop using String(cString:)

This commit is contained in:
ensan-hcl
2025-06-24 19:12:50 +09:00
parent 5feac1c672
commit a254dcee19
2 changed files with 8 additions and 7 deletions

View File

@ -44,7 +44,7 @@ extension Kana2Kanji {
var hasEOS: Bool
var description: String {
"PrefixConstraint(constraint: \"\(String(cString: self.constraint + [0]))\", hasEOS: \(self.hasEOS))"
"PrefixConstraint(constraint: \"\(String(decoding: self.constraint, as: UTF8.self))\", hasEOS: \(self.hasEOS))"
}
var isEmpty: Bool {

View File

@ -239,8 +239,10 @@ final class ZenzContext {
}
// Heap
let cchars: [CChar] = prompt_tokens.dropFirst(initial_count).flatMap(self.token_to_piece) + [0]
return String(cString: cchars)
let cchars: [CChar] = prompt_tokens.dropFirst(initial_count).flatMap(self.token_to_piece)
let data = Data(cchars.map { UInt8(bitPattern: $0) })
let result: String = String(data: data, encoding: .utf8) ?? ""
return result
}
func predict_next_character(leftSideContext: String, count: Int) -> [(character: Character, value: Float)] {
@ -471,12 +473,11 @@ final class ZenzContext {
//
if maxItem.token != token_id {
if maxItem.token == llama_vocab_eos(vocab) {
var cchars = tokens[..<i].reduce(into: []) {
let cchars: [CChar] = tokens[..<i].reduce(into: []) {
$0.append(contentsOf: token_to_piece(token: $1))
}
// adding "\0"
cchars.append(0)
let string = String(cString: cchars)
let data = Data(cchars.map { UInt8(bitPattern: $0) })
let string: String = String(data: data, encoding: .utf8) ?? ""
//
let wholeResult = String(string.dropFirst(prompt.count))
return .wholeResult(wholeResult)