A dynamic platform enabling intelligent interactions between AI personas using multiple AI models, with advanced conversation management and flow control.
- 🤖 Multi-model AI Integration (OpenAI, xAI, Google AI)
- 🎭 Dynamic Persona Management
- 💬 Structured Conversation Control
- 📊 Progress Tracking
- 📥 Conversation Export
- 🔄 Real-time Updates
- 🎨 Beautiful UI with Tailwind CSS
- Frontend: TypeScript, React, TanStack Query, Tailwind CSS, shadcn/ui
- Backend: Express.js, Node.js
- Database: PostgreSQL with Drizzle ORM
- AI Integration: OpenAI API, xAI API, Google AI API
- Node.js 18+
- PostgreSQL database
- API keys for AI services:
- OpenAI API key
- xAI API key
- Google AI API key
-
Clone the repository
-
Install dependencies:
npm install
-
Set up environment variables:
DATABASE_URL=postgresql://user:password@host:port/dbname OPENAI_API_KEY=your_openai_api_key XAI_API_KEY=your_xai_api_key GOOGLE_API_KEY=your_google_api_key
-
Initialize the database:
npm run db:push
-
Start the development server:
npm run dev
- Navigate to the home page
- Use the persona form to create AI personas:
- Name: Identity of the AI agent
- Background: Character context and history
- Goal: Objective in the conversation
- Model: Select from available AI models
- Create at least two personas
- Use the conversation controls to:
- Select the first speaker
- Set maximum turns
- Customize system prompt
- Start conversation
- Control turn progression
- Export conversation history
- Conversations follow a structured turn-based system
- Each persona responds based on:
- Their background and goals
- Previous conversation context
- System prompt guidance
- Turn limits prevent endless conversations
- Export functionality saves conversation history
POST /api/personas
GET /api/personas
PATCH /api/personas/:id
DELETE /api/personasPOST /api/conversations
GET /api/conversations/current
POST /api/conversations/:id/next
DELETE /api/conversationsinterface Persona {
id: number;
name: string;
background: string;
goal: string;
modelType: string;
}interface Conversation {
id: number;
status: string;
currentSpeakerId: number;
maxTurns: number;
currentTurn: number;
systemPrompt: string;
}- GPT-4o (Latest)
- GPT-4 Turbo
- GPT-4
- GPT-3.5 Turbo
- Grok 2
- Grok 2 Vision
- Grok Beta
- Grok Vision Beta
- Gemini Pro
- Gemini Pro Vision
- Gemini Ultra
client/: Frontend React applicationserver/: Express.js backendshared/: Shared types and schemaslib/: Utility functions and API clients
- Use TypeScript for type safety
- Follow RESTful API design
- Implement proper error handling
- Maintain consistent code style
- Write clear documentation
- Use proper Git workflow
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT License
For support, please open an issue in the repository.