31 lines
756 B
TypeScript
31 lines
756 B
TypeScript
import LLM from "./llm";
|
|
import type { AppState } from "../contexts/state";
|
|
import { Tools } from "./tools";
|
|
|
|
namespace Prompt {
|
|
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: Tools.getTools(),
|
|
// TODO banned_tokens
|
|
};
|
|
}
|
|
}
|
|
|
|
export default Prompt;
|