AIShell.Abstraction
此项目将作为 NuGet 包发布。 它包含用于定义与 AI Shell 交互的代理插件的所有接口。
此抽象层包括:
-
IShell:表示 AI shell 的代理。 -
IHost:表示 shell 主机的代理。 -
IRenderElement:表示用于以表或列表格式呈现对象的header/value或label/value对。 -
IStreamRender:表示用于呈现流式处理响应的特殊呈现形式。 -
ILLMAgent:表示代理插件。 -
IOrchestrator:派生ILLMAgent。 表示可将查询路由到最合适的代理的特殊代理。 -
ICodeAnalyzer:派生ILLMAgent。 表示一个特殊代理,该代理可以分析代码中存在安全问题。 -
CommandBase:表示代理在加载时可以注册到 shell 的命令。
ILLMAgent 中最重要的接口方法是 Task<bool> Chat(string input, IShell shell),当查询来自用户时,shell 将调用此方法。 它为代理的实现提供了极大的灵活性。 代理可以执行任何想要面向任意 AI 后端的任何操作,并使用 IShell提供的实用工具呈现输出。
代理插件负责管理自己的聊天历史记录。
AIShell.Kernel
这是 AI Shell 的实现。 它包含以下组件:
- ReadLine
- 呈现(markdown 呈现、流呈现、分页呈现)
- 插件管理
- 主机(用于编写输出和交互式提示的一系列实用工具方法)
- 命令运行程序和内置命令
- 实用工具(剪贴板、选项卡完成、预测 intellisense)
-
python、powershell、cmd和bash的代码执行(使代理能够使用 LLM 执行函数调用。尚未启动的)
-
- Shell 集成(与命令行 shell 的深度集成。尚未启动的)
- 配置(颜色、键绑定等 尚未启动)
AIShell.App
这是一个精简包装器,用于创建可执行文件 AIShell.Kernel。 最初的想法是 AIShell.Kernel 库,以便可供其他应用程序使用或托管。 如果这个想法不再有意义,我们可以轻松地将 AIShell.App 合并到 AIShell.Kernel。