/openai-zulip

Zulip/OpenAI chatbots, powered by Supabase.

Primary LanguageTypeScript

Zulip/OpenAI chatbots, powered by Supabase.

A series of chatbots, that takes a prompt from the user, serves it to the OpenAI API and returns the response (chat completion) to the user.

Built to be used with Zulip's Outgoing Webhook endpoint API.

The bot endpoints are served using Supabase edge-functions.

An edge-fuction is just a server-side typescript application. Each chatbot is a seperate edgefunction, and can be found in seperate folders in supabase/functions/

The chatbot typescript logic is stored in chatbot_engine/

The chatbots automatically prompts the user for data-consent the first time they are called, to make sure the user is OK with their data being shared with Supabase and OpenAI.

If the user has given full consent, we also generate and store chat summaries in a Supabase database, connected to the project. These summaries are generated by OpenAI, and passed along to future bot prompts.

to-do

  • Double-proof that no user data has been shared with Supabase before consent has been given

    • (At the moment, temporary data may be stored)
  • Add more documentation for others to fork this repo and set up their own chatbot.