import LLM from "./llm"; import type { AppState } from "../contexts/state"; namespace Prompt { const tools: LLM.Tool[] = [ { type: 'function', function: { name: 'test', description: 'A simple test function', parameters: { type: 'object', properties: { message: { type: 'string', description: 'The test message', }, }, required: ['message'], }, }, }, ]; export function compilePrompt(state: AppState, newMessages: LLM.ChatMessage[] = []): LLM.ChatCompletionRequest | null { const { currentStory, model } = state; if (!currentStory || !model) { return null; } const messages: LLM.ChatMessage[] = [ // TODO system prompt // TODO part of story ...currentStory.chatMessages, ]; messages.push(...newMessages); return { model, messages, tools, // TODO banned_tokens }; } } export default Prompt;