/the_agents

Yet another ChatGPT UI, but more fit and svelte. Sveltekit app to have multiple conversations with chatbots.

Primary LanguageSvelteMIT LicenseMIT

agents

The Agents

Yet another ChatGPT UI, but more fit and svelte, and with a secure backend.

Backend/Frontend Sveltekit app to have multiple conversations with chatbots. It connects to the OpenAI API.

Techstack

Features

  • Deploy in your own server
  • Safely store your API Key in the server
  • Run locally in your machine
  • Configurable amount of messages to send
  • Configurable system message to guide the assistant
  • Prompt templates: Speed up your questions with predefined templates
  • Prompt template parameters: Add parameters to the template and change them easily for
  • Start agents with predefined system message and prompt templates
  • Save all the messages in your database, continue your conversations later
  • Save the system message and prompt templates of conversations in the database
  • You can easily change the database provider to whatever you want
  • Auth system your needs.
  • Streaming messages
  • Edit messages
  • Create images with Dall-e
  • Voice input
  • Voice answers
  • Share conversations
  • Upload your own documents
  • Plugins

Setup

  • Create a .env file with your OpenAI Api key, and the urls of your postgres databases. See .env.supabase.example for reference. Your file should look like this:
SECRET_OPENAI_API_KEY="sk-XXXX"
DIRECT_URL="postgres://postgres:[YOUR_PASSWORD]@project.supabase.co:5432/postgres?connect_timeout=300"
DATABASE_URL="postgres://postgres:[YOUR_PASSWORD]@project.supabase.co:6543/postgres?pgbouncer=true"

If you want to use sqlite for a local database, check .env.sqlite.example, your file should look like this:

SECRET_OPENAI_API_KEY="sk-XXXXXXXX"
DATABASE_URL="file:./database_name.db"
  • npm install
  • npx prisma migrate dev to start the database and apply the schema
  • npm run dev to execute

Deploy

Add the environment variables to your system.

For serverless(e.g. Vercel) you can use Supabase as database, check this documentation.

Screenshots

Screen Shot 2023-04-06 at 00 36 43

Screen Shot 2023-04-06 at 00 36 14

Screen Shot 2023-04-06 at 00 36 23

Screen Shot 2023-04-06 at 00 36 32

Contact

Hi! you can find me here @julioandresdev