DuoChat is an advanced language model interaction framework, designed to allow one model to execute a task and another model to verify or refine that task, in multiple rounds. It allows for an iterative improvement on generated content by engaging two models in a back-and-forth conversation until a satisfactory solution is reached.
This project is inspired by and extends the concepts from TypeChat. We would like to express our gratitude to the original TypeChat project by Microsoft for laying the groundwork.
- Dual Model Interactions: One model as the executor, the other as the verifier.
- Iterative Refinement: Multiple rounds of task refinement to improve accuracy and quality.
- Configurable Rounds: Adjust the number of refinement rounds as per your needs.
- Debug Mode: Enhanced logging for debugging and insight purposes.
To use DuoChat, you need to:
- Initialize your executor and verifier models.
- Define your task.
- Call the
perform
method to get the models to interact and refine the task solution.
npm install duochat
import path from "path";
import dotenv from "dotenv";
dotenv.config({ path: path.join(__dirname, "../../../.env") });
import { createLanguageModel, DuoChatLanguageModel } from 'duochat';
import { createDuoChat, DuoChat } from 'duochat';
// Create executor and verifier
const executor: DuoChatLanguageModel = createLanguageModel(process.env);
const verifier: DuoChatLanguageModel = createLanguageModel(process.env);
// Create DuoChat instance
const duochat: DuoChat = createDuoChat(executor, verifier);
duochat.debug = true;
// Define task description
const taskDescription = 'Write an introduction for a blog post about the importance of digital privacy.';
// Run DuoChat
async function main(): Promise<void> {
const result = await duochat.perform(taskDescription);
console.log('Final result:\n', result);
}
main();
Special thanks to TypeChat for providing the foundational ideas and structure for this project.