# Sleveen.AI **Repository Path**: rainlime/sleveen-ai ## Basic Information - **Project Name**: Sleveen.AI - **Description**: 个人使用的AI基础库 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-05 - **Last Updated**: 2026-04-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Sleveen.AI 基于 .NET 的大语言模型(LLM)调用类库,与 **mooSQL** 生态共用基础设施(日志 `IExeLog` 等),通过 HTTP 对接多种提供商的 Chat Completions 风格 API。 ## 仓库结构 源码不在仓库根目录的 `src` 下,而在解决方案项目内: | 路径 | 说明 | |------|------| | `Sleveen.AI/Sleveen.AI.slnx` | 解决方案入口 | | `Sleveen.AI/Sleveen.AI/Sleveen.AI.csproj` | 类库项目 | | `Sleveen.AI/Sleveen.AI/src/pure/AI/` | **核心抽象**:配置、会话、方言、HTTP 客户端等 | | `Sleveen.AI/Sleveen.AI/src/ext/AI/` | **扩展实现**:工厂、各厂商请求/响应构建、HTTP 辅助类 | ## 技术栈与依赖 - **目标框架**:`net10.0` - **NuGet**:`mooSQL.Ext`(当前 `8.0.1.1`) ## 核心概念(命名空间 `Sleveen.AI`) - **LLMConfig**:服务端点、模型名、`ApiKey`、超时、`MaxTokens`、温度、是否流式等。 - **LLMType**:厂商枚举(含 DeepSeek、ChatGPT、通义千问、豆包、Dify 场景等);具体选用哪种**方言**由工厂按类型映射决定。 - **LLMDialect / IAPIDataBuilder**:按厂商组请求体、解析响应。 - **LLMInstance**:`LLMConfig` + 方言,可被缓存复用。 - **HttpLLMClient**:`ILLMClient` 的默认实现,通过 HTTP 调用模型并支持会话(`LLMSession`)。 - **BaseLLMClientFactory / HttpLLMClientFactory**:根据 `LLMConfig` 创建方言与客户端;`GetInstance` 可从配置组装 `LLMInstance`。 - **LLMCachedBoxBase**:按「连接位」缓存配置与实例,抽象 `InitConfig`、`LoadConfig`、`GetFactory`、`GetHttpClient` 等,供宿主应用注入真实配置来源与 `HttpClient`。 `LLMAssistant` 面向依赖 `ILLMClientFactory` 的场景封装了 `GenerateContentAsync`;**扩展注册类 `StartUpSooAI` 中的 `AddLLMServices` 目前为注释占位**,接入 DI 需自行注册工厂与助手。 ## 已实现的方言映射(`HttpLLMClientFactory.GetDialect`) | `LLMType` | 方言 | |-----------|------| | `DeepSeek` | DeepSeek | | `QianWen` | 通义千问 | | `HHNYDify` | Dify(项目内注释为淮河能源 Dify 场景) | | 其他(如 `ChatGPT`、`Doubao`) | `DefaultDialect`(OpenAI 兼容风格) | 各厂商目录位于 `src/ext/AI/providers/` 下(如 `DeepSeek`、`Qianwen`、`Dify`、`Defaulted`)。 ## 构建 需安装支持 **.NET 10** 的 SDK。 ```bash dotnet build Sleveen.AI/Sleveen.AI.slnx ``` 或直接构建类库项目: ```bash dotnet build Sleveen.AI/Sleveen.AI/Sleveen.AI.csproj ``` ## 使用思路(概要) 1. 构造并填写 **LLMConfig**(`Type`、`ApiBaseUrl`、`ApiKey`、`ModelName` 等)。 2. 使用 **BaseLLMClientFactory**(通常为 **HttpLLMClientFactory**)的 `GetInstance(LLMConfig)` 得到 **LLMInstance**。 3. 调用 `CreateClient(LLMInstance)` 得到 **ILLMClient**,在设置好 **HttpClient**(及可选日志)后调用 `sendAsync` / `send`。 多模型、多配置场景可继承 **LLMCachedBoxBase**,实现配置加载与 `HttpClient` 提供逻辑,再通过 `useClient` 取得带会话的客户端。 更细的类说明见项目内 `Sleveen.AI/Sleveen.AI/src/ext/AI/README.md`。 ## 许可证 MIT License,见仓库根目录 `LICENSE`。 ## 参与贡献 1. Fork 本仓库 2. 新建功能分支 3. 提交代码并发起 Pull Request --- *英文说明见 [README.en.md](README.en.md)。*