Merge pull request #207 from azooKey/refactor/deprecated_api

refactor: stop using String(cString:)
This commit is contained in:
Miwa
2025-06-25 12:24:14 +09:00
committed by GitHub
2 changed files with 8 additions and 7 deletions

View File

@ -44,7 +44,7 @@ extension Kana2Kanji {
var hasEOS: Bool var hasEOS: Bool
var description: String { 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 { var isEmpty: Bool {

View File

@ -239,8 +239,10 @@ final class ZenzContext {
} }
// Heap // Heap
let cchars: [CChar] = prompt_tokens.dropFirst(initial_count).flatMap(self.token_to_piece) + [0] let cchars: [CChar] = prompt_tokens.dropFirst(initial_count).flatMap(self.token_to_piece)
return String(cString: cchars) 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)] { 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 != token_id {
if maxItem.token == llama_vocab_eos(vocab) { 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)) $0.append(contentsOf: token_to_piece(token: $1))
} }
// adding "\0" let data = Data(cchars.map { UInt8(bitPattern: $0) })
cchars.append(0) let string: String = String(data: data, encoding: .utf8) ?? ""
let string = String(cString: cchars)
// //
let wholeResult = String(string.dropFirst(prompt.count)) let wholeResult = String(string.dropFirst(prompt.count))
return .wholeResult(wholeResult) return .wholeResult(wholeResult)