From d8205ed6a33c8d8c3bcb0a50eb5692a45895c1b7 Mon Sep 17 00:00:00 2001 From: gitee-bot Date: Thu, 3 Jul 2025 05:30:03 +0000 Subject: [PATCH] Update README.md --- applications/zhipuai-sdk-csharp-v4/README.md | 252 ++++++++++--------- 1 file changed, 128 insertions(+), 124 deletions(-) diff --git a/applications/zhipuai-sdk-csharp-v4/README.md b/applications/zhipuai-sdk-csharp-v4/README.md index 9755450..0cf3e9f 100644 --- a/applications/zhipuai-sdk-csharp-v4/README.md +++ b/applications/zhipuai-sdk-csharp-v4/README.md @@ -1,148 +1,152 @@ -# 智谱大模型开放接口SDK -智谱开放平台大模型接口 C# SDK (Big Model API SDK in C#),让开发者更便捷的调用智谱开放API - -## 简介 - -如果有 bug 或者缺少需要的功能请提 issues - -## 安装 - -1. 在VisualStudio打开您的解决方案(.sln)。 - -2. 右键单击解决方案并在弹出的菜单中选择 添加->现有项目。 - -3. 在弹出的对话框中,选择ZhipuApi.csproj文件,然后单击“打开”。 - -4. 右键单击您的项目并选择添加->项目引用。添加ZhipuApi的引用,然后单击确定。 - -## 使用 - -### 对话补全 - +# Codeflow 项目文档 + +## 项目简介 +Codeflow 是一个用于构建和执行流程的框架,支持多种服务和数据源。它提供了一套完整的接口和服务实现,用于处理脚本、数据库操作、事件流、AI 交互等。 + +## 主要功能 +- **流程构建与执行**:通过装饰器模式实现的流程节点处理,支持条件判断、循环、事件触发等。 +- **脚本运行时**:提供 JavaScript 脚本运行时支持,允许动态执行脚本逻辑。 +- **Git 存储集成**:支持从 Git 仓库克隆、拉取、提交代码。 +- **服务接口**:包括 AI 服务、API 服务、推送服务、缓存服务等。 +- **可视化编辑器**:支持流程图的可视化编辑和配置。 + +## 安装与配置 + +### 环境要求 +- .NET 6 或更高版本 +- Git +- MongoDB 或 SQL 数据库(根据使用的服务) + +### 安装步骤 +1. 克隆仓库: + ```bash + git clone + ``` +2. 进入项目目录: + ```bash + cd applications/Codeflow + ``` +3. 恢复依赖: + ```bash + dotnet restore + ``` +4. 构建项目: + ```bash + dotnet build + ``` +5. 运行项目: + ```bash + dotnet run + ``` + +## 使用说明 + +### 流程构建 +使用 `CodeflowFactory` 类来构建流程处理器: ```csharp -var clientV4 = new ClientV4(API_KEY); -var response = clientV4.chat.Completion( - new TextRequestBase() - .SetModel("glm-4") - .SetMessages(new[] { new MessageItem("user", "你好,你是谁?") }) - .SetTemperature(0.7) - .SetTopP(0.7) -); - -Console.WriteLine(JsonSerializer.Serialize(response, DEFAULT_SERIALIZER_OPTION)); +var handler = CodeflowFactory.BuildHandler(config, provider, grainFactory, partition, workspace, commitSha); ``` - -### 对话补全(流式) - +- `config`: 流程配置字符串 +- `provider`: 服务提供者 +- `grainFactory`: Orleans Grain 工厂 +- `partition`, `workspace`, `commitSha`: 分区、工作区和提交哈希 + +### 节点处理 +支持多种类型的节点装饰器: +- `CallAIDecorator`: 调用 AI 服务 +- `CallApiDecorator`: 调用 API 服务 +- `CallActionDecorator`: 执行自定义动作 +- `ConditionDecorator`: 条件判断 +- `LoopDecorator`: 循环执行 +- `PushDecorator`: 推送消息 +- `EventDecorator`: 事件触发 +- `WorkflowDecorator`: 工作流控制 + +### 脚本运行时 +使用 `JavascriptRuntimeOptimize` 类来执行 JavaScript 脚本: ```csharp -var clientV4 = new ClientV4(API_KEY); -var responseIterator = clientV4.chat.Stream( - new TextRequestBase() - .SetModel("glm-4") - .SetMessages(new[] - { - new MessageItem("user", "1+1等于多少"), - new MessageItem("assistant", "1+1等于2。"), - new MessageItem("user", "再加2呢?"), - }) - .SetTemperature(0.7) - .SetTopP(0.7) -); - -foreach (var response in responseIterator) -{ - Console.WriteLine(JsonSerializer.Serialize(response, DEFAULT_SERIALIZER_OPTION)); -} +var runtime = new JavascriptRuntimeOptimize(provider, path, partition, workspace, commitSha); +await runtime.InvokeScriptAsync(context, scriptContent, timeSpan); ``` -### 工具调用 - +### Git 集成 +使用 `GitUtils` 类进行 Git 操作: ```csharp -var clientV4 = new ClientV4(API_KEY); -var response = clientV4.chat.Completion( - new TextRequestBase() - .SetModel("glm-4") - .SetMessages(new[] { new MessageItem("user", "北京今天的天气如何?") }) - .SetTools(new[] - { - new FunctionTool().SetName("get_weather") - .SetDescription("根据提供的城市名称,提供未来的天气数据") - .SetParameters(new FunctionParameters() - .AddParameter("city", ParameterType.String, "搜索的城市名称") - .AddParameter("days", ParameterType.Integer, "要查询的未来的天数,默认为0") - .SetRequiredParameter(new string[] { "city" })) - }) - .SetToolChoice("auto") - .SetTemperature(0.7) - .SetTopP(0.7) -); - -Console.WriteLine(JsonSerializer.Serialize(response,DEFAULT_SERIALIZER_OPTION)); +var repo = GitUtils.CloneOrPullRepository(remoteUrl, localPath, credentials, depth, branchName); ``` -### CogView图像生成 - +### 服务接口 +- **AI 服务**:`IAIService` 接口,支持 `GetConfig`, `SendMessageAsync`, `SendMessageIteratorAsync` +- **API 服务**:`IAPIService` 接口,支持 `GetConfig` +- **推送服务**:`IPushService` 接口,支持 `SendMessageAsync` +- **脚本运行时**:`IScriptRuntime` 接口,支持 `GetRuntimeObjects` +- **事件服务**:`IEventService` 接口,支持 `SendMessageAsync`, `SendDelayMessageAsync` + +### 数据模型 +- `NodeOptions`: 节点配置,包含节点 ID、类型、数据 +- `EdgeOptions`: 边配置,包含边 ID、源句柄、数据 +- `CodeFlowConfig`: 流程配置,包含节点和边的集合 +- `AIOptions`: AI 交互参数,包含系统提示、历史记录、用户输入等 +- `APIOptions`: API 请求参数,包含 URL 和代码模板 +- `PushOptions`: 推送选项,包含输出结构 +- `CompletionOptions`: 补全选项,包含标签、插入文本、详细信息等 + +### 服务注册 +在 `ProviderExtensions` 中注册服务: ```csharp -var clientV4 = new ClientV4(API_KEY); -var response = clientV4.images.Generation(new ImageRequestBase() - .SetModel("cogview") - .SetPrompt("一只可爱的科幻风格小猫咪")); - -Console.WriteLine(JsonSerializer.Serialize(response,DEFAULT_SERIALIZER_OPTION)); +services.AddProviders(); ``` -### CogVLM图像识别 +## 示例代码 +### 构建流程 ```csharp -var clientV4 = new ClientV4(API_KEY); -var response = clientV4.chat.Completion( - new TextRequestBase() - .SetModel("cogvlm_28b") - .SetMessages(new [] - { - new ImageToTextMessageItem("user") - .setText("这是什么") - .setImageUrl("") - - }) - .SetTemperature(0.7) - .SetTopP(0.7) -); - -Console.WriteLine(JsonSerializer.Serialize(response, DEFAULT_SERIALIZER_OPTION)); +var config = "{\"Nodes\":[{\"Id\":\"1\",\"Type\":\"Start\",\"Data\":{\"Name\":\"Test\"}]}"; +var handler = CodeflowFactory.BuildHandler(config, serviceProvider, grainFactory, "default", "workspace", "commitSha"); ``` -### CogVLM图像识别(流式) +### 执行脚本 +```csharp +var runtime = new JavascriptRuntimeOptimize(provider, "path", null, "workspace", "commitSha"); +await runtime.InvokeScriptAsync(context, "console.log('Hello World');", TimeSpan.FromSeconds(10)); +``` +### Git 操作 ```csharp -var clientV4 = new ClientV4(API_KEY); -var responseIterator = clientV4.chat.Stream( - new TextRequestBase() - .SetModel("cogvlm_28b") - .SetMessages(new [] - { - new ImageToTextMessageItem("user") - .setText("这是什么") - .setImageUrl("") - - }) - .SetTemperature(0.7) - .SetTopP(0.7) -); - -foreach (var response in responseIterator) +var options = new GitWorkSpaceOptions { - Console.WriteLine(JsonSerializer.Serialize(response, DEFAULT_SERIALIZER_OPTION)); -} + ReposUrl = "https://github.com/example/repo.git", + BranchName = "main", + User = "user", + Password = "password" +}; +var repo = options.CloneRepository("tempPath"); ``` -### 文本向量化 +### 调用 AI 服务 +```csharp +var aiService = new Glm40520Provider(); +var result = await aiService.SendMessageAsync("channel", new AIOptions { System = "System Prompt", User = "User Input" }); +``` +### 调用 API 服务 ```csharp -var clientV4 = new ClientV4(API_KEY); -var response = clientV4.embeddings.Process(new EmbeddingRequestBase() - .SetModel("embedding-2") - .SetInput("一只可爱的科幻风格小猫咪")); +var apiService = new BaiduSearchProvider(); +var result = await apiService.GetConfig(); +``` -Console.WriteLine(JsonSerializer.Serialize(response,DEFAULT_SERIALIZER_OPTION)); +### 推送消息 +```csharp +var pushService = new KafkaProvider(); +var output = await pushService.SendMessageAsync(new PushOptions { Name = "Test", CodeTemplate = "template" }); ``` + +## 贡献指南 +欢迎贡献代码和文档。请遵循以下步骤: +1. Fork 仓库 +2. 创建新分支 +3. 提交更改 +4. 发起 Pull Request + +## 许可证 +本项目采用 MIT 许可证。详情请查看 [LICENSE](LICENSE) 文件。 \ No newline at end of file -- Gitee