duochat
v0.0.1
Published
An LLM-based library orchestrating iterative task execution and verification through AI-powered dialogues.
Downloads
2
Readme
DuoChat
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.
Inspiration
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.
Features
- 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.
How to Use
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.
Installation
npm install duochat
Example
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();
Acknowledgements
Special thanks to TypeChat for providing the foundational ideas and structure for this project.