backend: separate App and server, add websocket endpoint, accept data directory command argument. initialize sqlalchemy database and models in new module. frontend: create backend class for managing ws connection, move ui to chat_screen, create scaffold chat and agent classes.
This commit is contained in:
1 parent
1e82796db1
commit
44f0b3589c
19 files changed
+936
-122
No files matched your search
@@ -0,0 +1,28 @@
|
||||
# Scratchpad
|
||||
|
||||
This is just loose ideas that need to be consolidated and implemented.
|
||||
|
||||
---
|
||||
|
||||
There are essentially 2 main classes in the project: Agent, and Chat.
|
||||
A chat is a fully featured telegram-like chat, with controls for adding messages, searching and retrieving messages, editing existing messages, and upload various data types (audio, image, etc). Tag support is very important too, beyond communication controls. In the future there will also be real time communication functionality, ie. calls, possibly also visibility of draft messages.
|
||||
An agent is a controller for chats that it is part of. It can be implemented by multiple means, any class that supports the agent interface is an agent. They have the exact same controls over the chat that the user does, any aditional functionality depends on the agent itself.
|
||||
Unlike chatgpt and the initial horde, chats are not meant to be created for any new conversation. Instead, agents have a singular permanent chat with the user. Chats are only created when a topic needs so much discussion that its better to separate it, or for other purposes based on necessity or organization and with limited frequency, similar to slack/discord groups.
|
||||
In the same way as with chats, both the user and agents can create and update other agents. They have to be explicitly enabled to do so. Most agents are better not given this capability, but the introduction agent is encouraged to have it enabled.
|
||||
|
||||
**ALPHA MVP Urgently Needed.**
|
||||
|
||||
Such an MVP is a chat with an Agent that responds to messages one by one. It has a simplistic, brief and conversational prompt. System prompt has brief description of the chat system.
|
||||
Message history is stored, and its infinite. Agent sees the last N messages and a recursive summary of the previous conversation.
|
||||
Agent is powered by replicate, whose API key is configured via env variables.
|
||||
|
||||
MVP-2 lets the agent (and the user) search in the message history, and the recursive summary will have an enforced size limit.
|
||||
|
||||
MVP-3A has configurable agents, both user and agents can create new agents, also modify their own prompt. Probably allowed by default.
|
||||
MVP-3C has multiple chats, users and agents can create chats, modify chat titles, and alter chat participants.
|
||||
MVP-3P is permissions. Modifying chats and agents both need a permission system.
|
||||
|
||||
**Current Status**: Frontend and backend connect via websocket. Backend does nothing else. Frontend has basic chat classes and gui, and a basic agent class that repeats the user message.
|
||||
|
||||
# Next Steps
|
||||
These must be determined by the current system and the next target, currently MVP.
|
||||
Reference in new issue
Block a user