diff options
Diffstat (limited to 'spec.md.old')
| -rw-r--r-- | spec.md.old | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/spec.md.old b/spec.md.old new file mode 100644 index 0000000..28f01ef --- /dev/null +++ b/spec.md.old @@ -0,0 +1,42 @@ +overview: + a tool to interface with some AI model, via an external HTTP REST API. + +architecture: + - core module: provides all the functionality of interacting with the api and transforming between userdata and api-data + - CLI: allows the user to use the core module by entering commands with arguments + - REPL: a REPL interface that makes the user-experience a little more nice if desired. can either use the CLI or interface with the core directly. + - log module: used by core to log all behavior and events, to configured outputs, such as file and console + - config module + - web server module: a web server that can be ran to provide a nice html GUI to interface with the core + +features: + - conversation history can be saved to a file (configurable, with max length saved, multiple conversations) + - remembers previous conversation by default, or user can force new conversation + - user can manually edit the previous conversation which will change the conversation context that is sent to the LLM + - reads files from local system for context, and keeps a local store of file metadata that can be used by the LLM (configurable) + - looks at filenames for possible relevancy for answering query (configurable) + - configurable system prompt, but some good defaults so that the user doesn't have to worry about that + - + +tech: + - + - + - + +config: + - + - + +TODO: + - currently this doesn't keep conversation context. huge problem. fix. + - and add functionality to maintain session/chat or force new or select from previous + - first, see if can list previous sessions + - make a config object that can set all arg options + - make an assistant that uses a system prompt that tells the agent the situation. it has access to a list of files (a textfile containing a filetree) which it can use as a library of potentially useful documents to open to help it answer any query. if it needs to open a file, it returns some specific string, which tells the python program to provide it the contents of the specific file. this is done by first checking to see if it exists in the users GDAI files. if so, use the proper api call to include that as context. otherwise, find the file on the filesystem and make the proper api call to upload the file contents and include it as context. + - write tests + - make the web interface + - have module return rather than print + - write output to data log. probably also include other metadata in a data folder + - give the model the openapi.json and see what it can do + +Some implementation details:
\ No newline at end of file |
