fix continuing generating blank lines after getting EOT token or EOS token from LLM
This commit is contained in:
parent
fadde67135
commit
b25654dde1
2 changed files with 3 additions and 1 deletions
|
@ -26,6 +26,7 @@ actor LlamaContext {
|
||||||
private var context: OpaquePointer
|
private var context: OpaquePointer
|
||||||
private var batch: llama_batch
|
private var batch: llama_batch
|
||||||
private var tokens_list: [llama_token]
|
private var tokens_list: [llama_token]
|
||||||
|
var latest_llama_token_is_eog_or_reach_len: Bool = false
|
||||||
|
|
||||||
/// This variable is used to store temporarily invalid cchars
|
/// This variable is used to store temporarily invalid cchars
|
||||||
private var temporary_invalid_cchars: [CChar]
|
private var temporary_invalid_cchars: [CChar]
|
||||||
|
@ -160,6 +161,7 @@ actor LlamaContext {
|
||||||
|
|
||||||
if llama_token_is_eog(model, new_token_id) || n_cur == n_len {
|
if llama_token_is_eog(model, new_token_id) || n_cur == n_len {
|
||||||
print("\n")
|
print("\n")
|
||||||
|
latest_llama_token_is_eog_or_reach_len = true
|
||||||
let new_token_str = String(cString: temporary_invalid_cchars + [0])
|
let new_token_str = String(cString: temporary_invalid_cchars + [0])
|
||||||
temporary_invalid_cchars.removeAll()
|
temporary_invalid_cchars.removeAll()
|
||||||
return new_token_str
|
return new_token_str
|
||||||
|
|
|
@ -132,7 +132,7 @@ class LlamaState: ObservableObject {
|
||||||
messageLog += "\(text)"
|
messageLog += "\(text)"
|
||||||
|
|
||||||
Task.detached {
|
Task.detached {
|
||||||
while await llamaContext.n_cur < llamaContext.n_len {
|
while await !llamaContext.latest_llama_token_is_eog_or_reach_len{
|
||||||
let result = await llamaContext.completion_loop()
|
let result = await llamaContext.completion_loop()
|
||||||
await MainActor.run {
|
await MainActor.run {
|
||||||
self.messageLog += "\(result)"
|
self.messageLog += "\(result)"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue