This is a C# based repository for a middleware DLL used between a LLM backend and a UI Frontend. It is primarily used to simplify the heavy duty operations, offering powerful functions and premade file formats to the end developer. Please follow these guidelines when contributing:
- Never change the target platform or NET version
- Documentation must be in English and go in the Docs/ folder
Adapters/: Handles the communication between the backend server and the DLLAgent/: Background agent system (run tasks in the background while the user is not active)API/: Core clients for the various backendsChatlog/: All classes related to the chat log (log itself, sessions, individual messages)Docs/: Documentation filesFiles/: Main file formats used to communicate with the LLM some of which (like LLMSettings and BasePersona) are intended to serve as virtual class to be built upon by the actual applicationLLM/: Core functionalities like LLM communications and RAG functionalitiesMemory/: The various memory systems used by the library and personasPersonas/: The persona system allowing for customizable AI characters (and groups) with complex behaviorsPromptBuilder/: Used to convert from the library's internal chatlog format to Chat Completion and Text Completion formats that can be digested by a LLMSearchAPI/: Web search API integrationTools/: General purpose tools for string manipulation, token counter, and more
- Follow C# best practices and idiomatic patterns in .NET 10
- Maintain existing code structure and organization
- When using JSON, always favor using Newtonsoft JSON (already available) over the native json tools
- Document public APIs and complex logic.