mirror of
https://github.com/nolen777/eagle0.git
synced 2026-07-28 20:55:44 +00:00
Recover from missing chronicle entries
This commit is contained in:
+17
-9
@@ -1,6 +1,6 @@
|
||||
package net.eagle0.eagle.library.actions.llm_prompt_generators
|
||||
import net.eagle0.common.SimpleTimedLogger
|
||||
import net.eagle0.eagle.client_text.{ClientTextStore, TextGenerationResult}
|
||||
import net.eagle0.eagle.client_text.{ClientTextStore, TextGenerationDependencyUnknown, TextGenerationResult}
|
||||
import net.eagle0.eagle.library.settings.ChronicleWordCount
|
||||
import net.eagle0.eagle.model.action_result.generated_text_request.chronicle_event.ChronicleEvent
|
||||
import net.eagle0.eagle.model.action_result.generated_text_request.LlmRequestT
|
||||
@@ -177,14 +177,22 @@ case class ChronicleUpdatePromptGenerator(
|
||||
)
|
||||
|
||||
private def previousEntryText: Vector[TextGenerationResult] =
|
||||
chronicleUpdateMessage.previous_entries.map { entry =>
|
||||
clientTextStore.getText(entry.generatedTextId).map { text =>
|
||||
val chroniclerLabel =
|
||||
entry.chroniclerStyle match {
|
||||
case Some(style) if style.nonEmpty => s"Written by $style:"
|
||||
case _ => "Written by an unknown chronicler:"
|
||||
}
|
||||
s"${GeneratorUtilities.dateString(entry.date)}\n$chroniclerLabel\n$text"
|
||||
chronicleUpdateMessage.previous_entries.flatMap { entry =>
|
||||
clientTextStore.getText(entry.generatedTextId) match {
|
||||
case TextGenerationDependencyUnknown(missingTextId) =>
|
||||
SimpleTimedLogger.printLogger.logLine(
|
||||
s"Skipping missing previous chronicle entry $missingTextId while generating ${chronicleUpdateMessage.requestId}"
|
||||
)
|
||||
None
|
||||
case result =>
|
||||
Some(result.map { text =>
|
||||
val chroniclerLabel =
|
||||
entry.chroniclerStyle match {
|
||||
case Some(style) if style.nonEmpty => s"Written by $style:"
|
||||
case _ => "Written by an unknown chronicler:"
|
||||
}
|
||||
s"${GeneratorUtilities.dateString(entry.date)}\n$chroniclerLabel\n$text"
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+10
-1
@@ -1,6 +1,6 @@
|
||||
package net.eagle0.eagle.library.actions.llm_prompt_generators
|
||||
|
||||
import net.eagle0.eagle.client_text.{ClientTextStore, TextGenerationSuccess}
|
||||
import net.eagle0.eagle.client_text.{ClientTextStore, TextGenerationDependencyUnknown, TextGenerationSuccess}
|
||||
import net.eagle0.eagle.library.settings.ChronicleWordCount
|
||||
import net.eagle0.eagle.model.action_result.generated_text_request.{ChronicleUpdatePreviousEntry, LlmRequestT}
|
||||
import net.eagle0.eagle.model.action_result.generated_text_request.chronicle_event.{
|
||||
@@ -100,6 +100,10 @@ class ChronicleUpdatePromptGeneratorTest extends AnyFlatSpec with BeforeAndAfter
|
||||
TextGenerationSuccess("Last year's title\n=====\nLast year's text")
|
||||
)
|
||||
.once(): Unit
|
||||
mockClientTextStore.getText
|
||||
.expects("missing_chronicle_entry")
|
||||
.returning(TextGenerationDependencyUnknown("missing_chronicle_entry"))
|
||||
.once(): Unit
|
||||
mockClientTextStore.getText
|
||||
.expects("bregos_id")
|
||||
.returning(TextGenerationSuccess("Bregos Fyar is the King of the realm."))
|
||||
@@ -139,6 +143,11 @@ class ChronicleUpdatePromptGeneratorTest extends AnyFlatSpec with BeforeAndAfter
|
||||
date = Date(year = 342, month = Date.Month.January),
|
||||
generatedTextId = "previous_chronicle_entry",
|
||||
chroniclerStyle = None // Unknown chronicler for this older entry
|
||||
),
|
||||
ChronicleUpdatePreviousEntry(
|
||||
date = Date(year = 342, month = Date.Month.February),
|
||||
generatedTextId = "missing_chronicle_entry",
|
||||
chroniclerStyle = Some("a missing chronicler")
|
||||
)
|
||||
),
|
||||
new_entries = Vector(
|
||||
|
||||
Reference in New Issue
Block a user