# LLMApi: 模块结构示例

<!--category-- AI, LLM,  LLMApi, ASP.NET Core, API, Nuget, mockllmapi, AI-Article-->
<datetime class="hidden">2025-11-02T12:30</datetime>

# 一. 导言 导言 导言 导言 导言 导言 一,导言 导言 导言 导言 导言 导言

我对LLMApi想要的其中一件关键的事情是 它能够尽可能轻轻轻轻轻轻(所以只是模拟你想的pi型号) 并且非常容易获得输入; 所以你应该能够同样容易地得到所有的东西。

未来我希望您能够加入更多“插件”,[这是一篇关于... 薄凝油裂缝是如何运作的 以及一切的进进出出的文章](https://github.com/scottgal/LLMApi)你可以找到

> 吉特Hub在这里

[![对于项目,所有公共领域等等...](https://img.shields.io/nuget/v/mostlylucid.mockllmapi.svg)](https://www.nuget.org/packages/mostlylucid.mockllmapi)
[![注:这是GitHub的现场直播。](https://img.shields.io/nuget/dt/mostlylucid.mockllmapi.svg)](https://www.nuget.org/packages/mostlylucid.mockllmapi)

这是人工智能生成的。[N Nuget 元数](https://github.com/scottgal/LLMApi)N Nuget 元数

# 你可以找到

**吉特Hub在这里**对于项目,所有公共领域等等...

## 模块结构示例

- [新建于 v1.2. 0+:](#backward-compatible-unified-approach)
- [完全模块化!](#modular-approach)
  - [每个协议(REST、串流、图形QL、信号R、GRPC、OpenAPI)现在都可以单独添加和绘制。](#rest-only)
  - [加上动态外观加载, 环境管理, 以及更多!](#graphql-only)
  - [目录目录目录](#streaming-only)
  - [向后兼容(统一办法)](#signalr-only)
  - [模块式方法](#grpc-only)
  - [仅只只选择](#openapi-only)
  - [仅图解QL](#context-management-api)
  - [只流流流](#mix-and-match)
- [仅信号](#multiple-instances)
- [仅gRPC](#benefits-of-modular-approach)
- [仅限 OpenAPI](#migration-guide)
- [API 内地管理](#summary)

---


## 混合和匹配

**多个实例**

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Registers ALL services (REST, Streaming, GraphQL)
builder.Services.AddLLMockApi(builder.Configuration);

// Optional: Add SignalR
builder.Services.AddLLMockSignalR(builder.Configuration);

builder.Services.AddRazorPages();

var app = builder.Build();

app.UseStaticFiles();
app.UseRouting();
app.MapRazorPages();

// Maps ALL endpoints (REST, Streaming, GraphQL) at /api/mock
app.MapLLMockApi("/api/mock", includeStreaming: true, includeGraphQL: true);

// Optional: Map SignalR
app.MapLLMockSignalR("/hub/mock", "/api/mock");

app.Run();
```

**模块化方法的惠益**

- `/api/mock/**`《移徙指南指南指南》
- `/api/mock/stream/**`摘要摘要摘要
- `/api/mock/graphql`向后兼容(统一办法)
- `/hub/mock`现行守则继续运作,未作任何改动:
- `/api/mock/contexts`创建 :

---


## - REST 终点

### - SSE 流流端点

- 图QL 终点

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Register ONLY REST services
builder.Services.AddLLMockRest(builder.Configuration);

var app = builder.Build();

app.UseRouting();

// Map ONLY REST endpoints
app.MapLLMockRest("/api/mock");

app.Run();
```

**- 信号中枢(如果增加)**

- `/api/mock/**`- 无线电信号管理API(如果增加)

**模块式方法**

- 仅只只选择
- 完全适合在没有额外开支的情况下 进行简单的REST API模拟:
- 创建 :

---


### - 仅限REST端点

效益:

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Register ONLY GraphQL services
builder.Services.AddLLMockGraphQL(builder.Configuration);

var app = builder.Build();

app.UseRouting();

// Map ONLY GraphQL endpoint
app.MapLLMockGraphQL("/api/mock");

app.Run();
```

**最小记忆足迹**

- `/api/mock/graphql`快速启动时间

**仅包括常规请求请求Handler**

- 仅图解QL
- 仅用于图形QL应用程序的完美 :
- 创建 :

---


### - 仅图QL端点

效益:

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Register ONLY Streaming services
builder.Services.AddLLMockStreaming(builder.Configuration);

var app = builder.Build();

app.UseRouting();

// Map ONLY Streaming endpoints
app.MapLLMockStreaming("/api/mock");

app.Run();
```

**Clecle GracQL 只使用图形设置**

- `/api/mock/stream/**`无不必要的 REST 处理器

**GraphQL 客户端测试完美**

- 只流流流
- 适合测试 SSE 流客户端 :
- 创建 :

---


### - 仅 SSE 流流端点

效益:

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Register ONLY SignalR services (includes core services automatically)
builder.Services.AddLLMockSignalR(options =>
{
    options.BaseUrl = "http://localhost:11434/v1/";
    options.ModelName = "llama3";
    options.SignalRPushIntervalMs = 5000;
});

var app = builder.Build();

app.UseRouting();

// Map ONLY SignalR endpoints
app.MapLLMockSignalR("/hub/mock", "/api/contexts");

app.Run();
```

**轻量量量流设置**

- `/hub/mock`完全用于事件源测试
- `/api/contexts`无REST/GraphQL间接费用

**仅信号**

- 适合实时仪表板原型:
- 创建 :
- - 信号中枢

---


### - 背景管理 AIP

效益:

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Register services (gRPC included in AddLLMockApi)
builder.Services.AddLLMockApi(builder.Configuration);

var app = builder.Build();

app.UseRouting();

// Map ONLY gRPC endpoints
app.MapLLMockGrpcManagement("/api/grpc-protos");  // Proto file management
app.MapLLMockGrpc("/api/grpc");                   // gRPC service calls

app.Run();
```

**仅实时安装**

- `/api/grpc-protos`没有 HTTP 终端间接费用
- `/api/grpc/{serviceName}/{methodName}`适合 WebSock 测试

**仅gRPC**

- 适合测试具有动态原型定义的 GRPC 客户端:
- 创建 :
- - 上传/管理.proto文件(POST、GET、DELETE)

**- 采用模拟GRPC方法**

```bash
# 1. Upload a proto definition
curl -X POST http://localhost:5116/api/grpc-protos \
  -H "Content-Type: text/plain" \
  --data 'syntax = "proto3"; service UserService { rpc GetUser(GetUserRequest) returns (User); }'

# 2. Call the gRPC method
curl -X POST http://localhost:5116/api/grpc/UserService/GetUser \
  -H "Content-Type: application/json" \
  -d '{"user_id": 123}'
```

---


### 效益:

动态原生上传而不重新编译

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Register ONLY OpenAPI services
builder.Services.AddLLMockOpenApi(options =>
{
    options.BaseUrl = "http://localhost:11434/v1/";
    options.ModelName = "llama3";
    options.OpenApiSpecs = new List<OpenApiSpecConfig>
    {
        new OpenApiSpecConfig
        {
            Name = "PetStore",
            Source = "https://petstore3.swagger.io/api/v3/openapi.json",
            BasePath = "/api/petstore"
        }
    };
});

var app = builder.Build();

app.UseRouting();

// Map ONLY OpenAPI endpoints
app.MapLLMockOpenApi();                      // Loads configured specs
app.MapLLMockOpenApiManagement("/api/specs"); // Dynamic spec management

app.Run();
```

**适合 GRPC 客户端测试**

- LLM 产生现实的原生本源响应`/api/petstore/pet/{petId}`)
- `/api/specs`用法示例:

**仅限 OpenAPI**

- 完全可以模拟 OpenAPI/ Swager 的外观 :
- 创建 :
- 您的 OpenAPI 特征中定义的所有端点( 例如, )
- - 动态上传/管理开放API规格(POST、GET、DELETE)

---


### 效益:

自动模拟整个 OpenAPI 规格

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Register REST services
builder.Services.AddLLMockRest(builder.Configuration);

var app = builder.Build();

app.UseRouting();

// Map REST endpoints
app.MapLLMockRest("/api/mock");

// Add context management API
app.MapLLMockApiContextManagement("/api/contexts");

app.Run();
```

**无需人工绘制终点点图**

- `/api/mock/**`支持静态(配置)和动态(加载)规格
- `/api/contexts/{contextId}`完全适合API合同测试

**API 内地管理**

- 添加背景历史查看和修改:
- 创建 :
- - REST 终点
- - 查看/修改对话历史

---


### 效益:

查看用于调试的 LLM 对话框历史

#### 修改上下文以引导响应

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Register REST and GraphQL services
builder.Services.AddLLMockRest(builder.Configuration);
builder.Services.AddLLMockGraphQL(builder.Configuration);

var app = builder.Build();

app.UseRouting();

// Map both protocols
app.MapLLMockRest("/api/mock");
app.MapLLMockGraphQL("/api/mock");

app.Run();
```

**要重设置状态的清晰上下文**

- `/api/mock/**`适合测试状态假设情景
- `/api/mock/graphql`混合和匹配
- 使用案件所需的合并协议 :

---


#### 实例1:REST + 图形QL(无流流)

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Register GraphQL and SignalR services
builder.Services.AddLLMockGraphQL(builder.Configuration);
builder.Services.AddLLMockSignalR(builder.Configuration);

var app = builder.Build();

app.UseRouting();

// Map both protocols
app.MapLLMockGraphQL("/api/queries");
app.MapLLMockSignalR("/hub/realtime", "/api/contexts");

app.Run();
```

**创建 :**

- `/api/queries/graphql`- REST 终点
- `/hub/realtime`- 图QL 终点
- `/api/contexts`无串流端点
- 实例2:图形QL+信号R(无REST)

---


#### 创建 :

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Register all services modularly
builder.Services.AddLLMockRest(builder.Configuration);
builder.Services.AddLLMockStreaming(builder.Configuration);
builder.Services.AddLLMockGraphQL(builder.Configuration);
builder.Services.AddLLMockSignalR(builder.Configuration);

var app = builder.Build();

app.UseRouting();

// Map each protocol with custom patterns
app.MapLLMockRest("/api/rest");           // /api/rest/**
app.MapLLMockStreaming("/api/stream");    // /api/stream/stream/**
app.MapLLMockGraphQL("/api/graphql");     // /api/graphql/graphql
app.MapLLMockSignalR("/hub/live", "/api/hub");

app.Run();
```

**- 图QL 终点**

- `/api/rest/**`- 信号中枢
- `/api/stream/stream/**`- 信号管理API
- `/api/graphql/graphql`没有 REST 或 SSE 端点
- `/hub/live`实例3:所有不同模式的事物
- `/api/hub/contexts`创建 :

---


#### - REST 终点

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Register REST and OpenAPI services
builder.Services.AddLLMockRest(builder.Configuration);
builder.Services.AddLLMockOpenApi(builder.Configuration);

var app = builder.Build();

app.UseRouting();

// Map all three capabilities
app.MapLLMockRest("/api/mock");
app.MapLLMockOpenApi();
app.MapLLMockApiContextManagement("/api/contexts");

app.Run();
```

**- SSE流流**

- `/api/mock/**`- 图QL 终点
- - 信号中枢
- `/api/contexts/{contextId}`- 信号管理
- 实例4:REST + OpenAPI + 环境管理

---


#### 创建 :

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Register services for both protocols
builder.Services.AddLLMockApi(builder.Configuration);  // Includes gRPC
builder.Services.AddLLMockOpenApi(builder.Configuration);

var app = builder.Build();

app.UseRouting();

// Map both protocols
app.MapLLMockGrpcManagement("/api/grpc-protos");
app.MapLLMockGrpc("/api/grpc");
app.MapLLMockOpenApi();

app.Run();
```

**- REST 终点**

- `/api/grpc-protos`OpenAPI 标定端点( 从配置的标点中)
- `/api/grpc/{service}/{method}`- 背景管理
- 无溪流、 图形QL、 信号R 或 GRPC
- 实例5:GRPC+开放API(议定书桥桥测试)

---


#### 创建 :

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Register everything modularly
builder.Services.AddLLMockRest(builder.Configuration);
builder.Services.AddLLMockStreaming(builder.Configuration);
builder.Services.AddLLMockGraphQL(builder.Configuration);
builder.Services.AddLLMockSignalR(builder.Configuration);
builder.Services.AddLLMockOpenApi(options =>
{
    options.BaseUrl = "http://localhost:11434/v1/";
    options.ModelName = "llama3";
    options.OpenApiSpecs = new List<OpenApiSpecConfig>
    {
        new OpenApiSpecConfig
        {
            Name = "External API",
            Source = "https://api.example.com/openapi.json",
            BasePath = "/api/external"
        }
    };
});

var app = builder.Build();

app.UseRouting();

// Map everything at different paths
app.MapLLMockRest("/api/rest");
app.MapLLMockStreaming("/api/stream");
app.MapLLMockGraphQL("/api/graphql");
app.MapLLMockSignalR("/hub/realtime", "/api/hub");
app.MapLLMockOpenApi();
app.MapLLMockOpenApiManagement("/api/specs");
app.MapLLMockGrpcManagement("/api/grpc-protos");
app.MapLLMockGrpc("/api/grpc");
app.MapLLMockApiContextManagement("/api/contexts");

app.Run();
```

**- GRPC原型管理**

- `/api/rest/**`- gRPC 电话
- `/api/stream/stream/**`OpenAPI 标定端点
- `/api/graphql/graphql`适合测试协议桥/门道
- `/hub/realtime`例 6: 所有模块(全板标准测试)
- `/api/hub/contexts`创建 :
- `/api/external/**`- REST 终点
- `/api/specs`- SSE流流
- `/api/grpc-protos`- 图QL 终点
- `/api/grpc/{service}/{method}`- 信号中枢
- `/api/contexts/{contextId}`- 信号管理

**- OpenAPI 标定端点**

- - 开放的APIP管理
- - GRPC原型管理
- - gRPC 电话
- - 背景管理

---


## 完美于 :

综合综合测试

```csharp
using mostlylucid.mockllmapi;

var builder = WebApplication.CreateBuilder(args);

// Development endpoints - high randomness
builder.Services.AddLLMockRest(options =>
{
    options.BaseUrl = "http://localhost:11434/v1/";
    options.ModelName = "llama3";
    options.Temperature = 1.5;
});

builder.Services.AddLLMockGraphQL(options =>
{
    options.BaseUrl = "http://localhost:11434/v1/";
    options.ModelName = "llama3";
    options.Temperature = 1.5;
});

var app = builder.Build();

app.UseRouting();

// Development endpoints
app.MapLLMockRest("/api/dev");
app.MapLLMockGraphQL("/api/dev");

// Stable test endpoints (would need separate config)
app.MapLLMockRest("/api/test");
app.MapLLMockGraphQL("/api/test");

app.Run();
```

---


## 测试微观服务结构

### 1. **多议定书API网关**

与各类客户全面开发

- 多个实例
- 运行多个独立的模拟 API , 配置不同 :
- 模块化方法的惠益

### 2. **减少内存足印**

只装入您实际使用的处理器 :

### 3. **仅限 REST: ~ 30% 减内存**

仅图形QL: ~ 40% 减去内存

### 4. **只流流: ~ 40% 减内存**

快速启动启动

```csharp
// Test file for REST only
builder.Services.AddLLMockRest(config);
app.MapLLMockRest("/api/mock");

// Test file for GraphQL only
builder.Services.AddLLMockGraphQL(config);
app.MapLLMockGraphQL("/api/mock");
```

### 5. **注册服务减少 = 更快的应用程序启动**

更清晰的意图意图

```csharp
// This still works exactly as before
builder.Services.AddLLMockApi(configuration);
app.MapLLMockApi("/api/mock");
```

### 6. **代码明确显示您应用程序使用的协议**

较易测试

```csharp
app.MapLLMockRest("/rest");
app.MapLLMockGraphQL("/gql");
app.MapLLMockStreaming("/events");
app.MapLLMockSignalR("/ws", "/manage");
```

---


## 单独测试协议:

### 无断断更改

**现行守则继续发挥作用:**灵活模式

**任何路径的挂载协议 :**

**《移徙指南指南指南》**

```csharp
builder.Services.AddLLMockApi(builder.Configuration);
app.MapLLMockApi("/api/mock", includeStreaming: true, includeGraphQL: true);
```

**从 v1.1.0 到 v1.2.0**

```csharp
// Only include what you need
builder.Services.AddLLMockRest(builder.Configuration);
builder.Services.AddLLMockGraphQL(builder.Configuration);

app.MapLLMockRest("/api/mock");
app.MapLLMockGraphQL("/api/mock");
```

无需修改!

---


## 你现有的代码可以按原样运作

### 可选:为获得惠益而向模块化办法迁移

在 (v1. 1. 1. ) 之前 :
|----------|------------|------------|----------|
| **之后 (v1.2.0 - 模块) :** | `AddLLMockApi()` | `MapLLMockApi()`这两种方法都同样有效,但模块化方法更明确、更有效率。
| **摘要摘要摘要** | `AddLLMockRest()` | `MapLLMockRest()`核心礼宾事务科
| **方法_ 添加方法_ 地图方法_ 使用案例_** | `AddLLMockGraphQL()` | `MapLLMockGraphQL()`统一
| **所有东西(REST+Streaming+GraphQL+GRPC),后向兼容** | `AddLLMockStreaming()` | `MapLLMockStreaming()`休息
| **简单的REST嘲弄** | `AddLLMockSignalR()` | `MapLLMockSignalR()`图QL
| **** | `AddLLMockOpenApi()` | `MapLLMockOpenApi()`串流

### 只有SSE流

信号R
|---------|------------|----------|
| **实时WebSocket数据 {______________________________________________________________________________________________________________________________________________________** | `MapLLMockGrpcManagement()`Op开放API
| *** OpenAPI/Swagger speces 的嘲笑 * * 来自 OpenAPI/Swagger speces * * 来自 OpenAPI/Swagers 的嘲笑 * * 來自 OpenAPI/Swagers speces *** | `MapLLMockGrpc()`附加功能( 不需要添加方法)
| **** | `MapLLMockOpenApiManagement()`gRPPC 管理
| **上传/管理.proto文件** | `MapLLMockApiContextManagement()`gRPPC 调用

****

- OpenAPIP 管理`AddLLMockApi()`动态載入 OpenAPI 畫面
- 内容管理管理
- 浏览/修改 LLM 对话历史
- 注:

**g/RPPC服务包括:**