main: implement mixxx sqlite reading
This commit is contained in:
+14
-3
@@ -1,8 +1,10 @@
|
||||
use async_openai::types::chat::*;
|
||||
use chrono::Duration;
|
||||
use crossterm::event::MediaKeyCode::Play;
|
||||
use schemars::schema_for;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::Value;
|
||||
use sqlite::OpenFlags;
|
||||
|
||||
use crate::GeneratedResponses;
|
||||
|
||||
@@ -22,7 +24,16 @@ pub struct StageDirection {
|
||||
pub episode_number: u32,
|
||||
pub time_remaining: Duration,
|
||||
pub narrative: String,
|
||||
pub artifacts: Vec<String>
|
||||
pub artifacts: Vec<String>,
|
||||
pub current_playlist: Vec<PlaylistEntry>
|
||||
}
|
||||
|
||||
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
|
||||
pub struct PlaylistEntry {
|
||||
pub artist: String,
|
||||
pub album: String,
|
||||
pub title: String,
|
||||
pub bpm: f64
|
||||
}
|
||||
|
||||
|
||||
@@ -40,7 +51,7 @@ impl Scene {
|
||||
|
||||
impl Into<CreateChatCompletionRequest> for Scene {
|
||||
fn into(self) -> CreateChatCompletionRequest {
|
||||
let mut messages = vec![
|
||||
let mut messages = vec![
|
||||
ChatCompletionRequestMessage::System(ChatCompletionRequestSystemMessage { content: SYSTEM_PROMPT.into(), ..Default::default()}),
|
||||
ChatCompletionRequestMessage::System(ChatCompletionRequestSystemMessage { content: serde_json::to_string(&self.direction).unwrap().into(), ..Default::default()}),
|
||||
];
|
||||
@@ -55,7 +66,7 @@ impl Into<CreateChatCompletionRequest> for Scene {
|
||||
}));
|
||||
let response_schema: Value = schema_for!(GeneratedResponses).into();
|
||||
CreateChatCompletionRequest {
|
||||
model: "gpt-5.4-mini".into(),
|
||||
model: "gpt-5.4".into(),
|
||||
messages: messages,
|
||||
max_completion_tokens: Some(350),
|
||||
response_format: Some(ResponseFormat::JsonSchema { json_schema: ResponseFormatJsonSchema { description: None, name: "responses".into(), schema: response_schema, strict: None } }),
|
||||
|
||||
Reference in New Issue
Block a user