prediction: move actions into prediction mod
This commit is contained in:
+14
-3
@@ -2,16 +2,27 @@ use std::sync::Arc;
|
||||
|
||||
use async_openai::{Client, config::OpenAIConfig, types::chat::{ChatCompletionMessageToolCalls, ChatCompletionRequestAssistantMessageArgs, ChatCompletionRequestMessage, ChatCompletionRequestSystemMessageArgs, ChatCompletionRequestToolMessageArgs, ChatCompletionTool, ChatCompletionTools, CreateChatCompletionRequestArgs, FinishReason, FunctionObjectArgs, ResponseFormat, ResponseFormatJsonSchema}};
|
||||
use bandcamp::SearchResultItem;
|
||||
use chrono::{DateTime, Utc};
|
||||
use schemars::{JsonSchema, schema_for};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::{Serializer, ser::CompactFormatter};
|
||||
use tokio::sync::{RwLock, mpsc, watch};
|
||||
|
||||
use crate::{SaveData, archive::BeatsQueryArgs, artifacts::{Artifact, Artist, BandcampQueryArgs, MixxxDB}, scene::{PredictionAction, Scene, Scenery, StageDirection, conversation::ConversationEntry}};
|
||||
use crate::{SaveData, archive::BeatsQueryArgs, artifacts::{BandcampQueryArgs, MixxxDB}, scene::{Scene, Scenery, StageDirection, conversation::ConversationEntry}};
|
||||
|
||||
|
||||
const SYSTEM_PROMPT: &str = include_str!("system-prompt.txt");
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum PredictionAction {
|
||||
ConversationAppend(ConversationEntry),
|
||||
SetEpisodeNumber(u32),
|
||||
GeneratePredictions,
|
||||
SetNarrative(String),
|
||||
SetShowEndTime(DateTime<Utc>)
|
||||
}
|
||||
|
||||
|
||||
#[derive(JsonSchema, Deserialize, Serialize, Debug, Clone)]
|
||||
pub struct PossibleResponse {
|
||||
pub text: String,
|
||||
@@ -112,7 +123,7 @@ impl Session {
|
||||
|
||||
for track in &json_results {
|
||||
if let Some(merge_target) = self.scenery.artifacts.iter_mut().find(|a| { *a == track }) {
|
||||
merge_target.merge(track);
|
||||
merge_target.merge(track.clone());
|
||||
} else {
|
||||
self.scenery.artifacts.push(track.clone());
|
||||
}
|
||||
@@ -390,7 +401,7 @@ pub async fn start_prediction(saved_session: SaveData, mut messages: tokio::sync
|
||||
Ok(playlist) => {
|
||||
for track in &playlist {
|
||||
if let Some(merge_target) = session.scenery.artifacts.iter_mut().find(|a| { *a == track }) {
|
||||
merge_target.merge(track);
|
||||
merge_target.merge(track.clone());
|
||||
} else {
|
||||
session.scenery.artifacts.push(track.clone());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user