This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
Sunday, 02 November 2025
Yksi avainasioista, jonka halusin LLMApilta, oli kyky olla mahdollisimman kevyt (joten vain simuloikaa haluamaanne api-tyyppiä) ja olla superhelppo saada intc; niin sinun pitäisi pystyä saamaan kaikki mahdollisimman helposti.
Tämän vuoksi suunnittelin sen modulaarisuus mielessäni (whispers.. tulevaisuudessa haluan, että voit lisätä "plugins", joka mahdollistaa vielä enemmän).Tässä on artikkeli siitä, miten tha tarchitecture toimii ja mitä kaikkea se on.Voit löytää
GitHub tässä.
Se on tekoälyä.NuGetNuGet
**GitHub tässä.**projektia varten kaikki julkisuus ym....
Useita oikeusasteita
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();
Moduulilähestymistavan edut
/api/mock/**Maahanmuutto-opas/api/mock/stream/**Yhteenveto/api/mock/graphqlTaaksepäin yhteensopiva (yhtenäinen lähestymistapa)/hub/mockNykyinen koodi toimii edelleen ilman muutoksia:/api/mock/contextsNäin syntyy: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();
- SignalR-keskus (jos lisätty)
/api/mock/**- SignalR-hallinta API (jos lisätty)Modulaarinen lähestymistapa
Hyödyt:
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();
Minimaalinen muistijalanjälki
/api/mock/graphqlNopeampi käynnistysaikaSisältää vain RegularRequestHandlerin
Hyödyt:
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();
Puhdista vain GraphQL-asetukset
/api/mock/stream/**Ei tarpeettomia REST-käsittelijöitäTäydellinen GraphQL-asiakastestaukseen
Hyödyt:
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();
Kevyt suoratoistoasetus
/hub/mockTäydellinen tapahtumalähdetestaukseen/api/contextsEi REST/GraphQL-ylijäämääVain signaalit
Hyödyt:
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();
Reaaliaikainen vain asetukset
/api/grpc-protosEi HTTP:n päätetapahtumaa yleisellä tasolla/api/grpc/{serviceName}/{methodName}Täydellinen WebSocket-testaukseenVain gRPC
- Invoke mock gRPC methods
# 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}'
Dynaaminen proto-lataus ilman uudelleenlaatimista
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();
Täydellinen gRPC-asiakastestaukseen
/api/petstore/pet/{petId})/api/specsKäyttöesimerkki:Vain OpenAPI
Pilkkaa automaattisesti koko OpenAPI:n spesifikaatiot
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();
Manuaalista päätetapahtumakartoitusta ei tarvita
/api/mock/**Tukee sekä staattisia (konfiguroituja) että dynaamista (laajennettuja) speksejä/api/contexts/{contextId}Täydellinen API-sopimustestaukseenKontekstinhallinnan API
Näytä LLM-keskusteluhistoriaa vianetsintää varten
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();
Selkeä konteksti tilan nollaamiseksi
/api/mock/**Täydellinen stateististen skenaarioiden testaamiseen/api/mock/graphqlSekoita ja täsmää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();
Näin syntyy:
/api/queries/graphql- REST- päätetapahtumat/hub/realtime- GrafQL- päätetapahtuma/api/contextsEi virtauksen päätetapahtumiausing 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();
- GrafQL- päätetapahtuma
/api/rest/**- SignalR-keskus/api/stream/stream/**- SignalR-hallinta API/api/graphql/graphqlEi REST- tai SSE-päätetapahtumia/hub/liveEsimerkki 3: Kaikki, missä on erilaisia kuvioita/api/hub/contextsNäin syntyy: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:n suoratoisto
/api/mock/**- GrafQL- päätetapahtuma/api/contexts/{contextId}- SignalR:n johtousing 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- päätetapahtumat
/api/grpc-protosOpenAPI-spektit päätetapahtumat (määritellyistä spekseistä)/api/grpc/{service}/{method}- Kontekstin hallintausing 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-protojohtaminen
/api/rest/**- GRPC kutsuu/api/stream/stream/**OpenAPI-spektimuuttujat/api/graphql/graphqlTäydellinen protokollasiltojen/porttien testaamiseen/hub/realtimeEsimerkki 6: Kaikki modulaariset (täysi pinon testaus)/api/hub/contextsNäin syntyy:/api/external/**- REST- päätetapahtumat/api/specs- SSE:n suoratoisto/api/grpc-protos- GrafQL- päätetapahtuma/api/grpc/{service}/{method}- SignalR-keskus/api/contexts/{contextId}- SignalR:n johto- OpenAPI spec - päätetapahtumat
Kokonaisvaltainen integraatiotesti
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();
Täysosuman kehitys eri asiakastyypeillä
Lastaa vain käyttämäsi käsittelijät:
Vain GrafQL: ~40 % vähemmän muistia
Nopeampi käynnistys
// 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");
Selkeämpi intendentti
// This still works exactly as before
builder.Services.AddLLMockApi(configuration);
app.MapLLMockApi("/api/mock");
Helpompi testaus
app.MapLLMockRest("/rest");
app.MapLLMockGraphQL("/gql");
app.MapLLMockStreaming("/events");
app.MapLLMockSignalR("/ws", "/manage");
**Nykyinen koodi toimii edelleen:**Joustavat kuviot
Asenna protokollia millä tahansa polulla:
Maahanmuutto-opas
builder.Services.AddLLMockApi(builder.Configuration);
app.MapLLMockApi("/api/mock", includeStreaming: true, includeGraphQL: true);
Tullattaessa v1.1.0–1.2.0
// Only include what you need
builder.Services.AddLLMockRest(builder.Configuration);
builder.Services.AddLLMockGraphQL(builder.Configuration);
app.MapLLMockRest("/api/mock");
app.MapLLMockGraphQL("/api/mock");
Muutosta ei tarvita!
Ennen (v1.1.0):
|----------|------------|------------|----------|
| Jälkeen (v1.2.0 - Modulaarinen): | AddLLMockApi() | MapLLMockApi()Molemmat lähestymistavat toimivat samalla tavalla, mutta modulaarinen lähestymistapa on selkeämpi ja tehokkaampi.
| Yhteenveto | AddLLMockRest() | MapLLMockRest()Perusprotokollan mukaiset palvelut
| Add Method Map Method Use Case Add Method Add Method Map Method Use Case Case Add Method Add Method Add Method Add Method Add Method Add Method Add Method Add Method Add Method Add Method Add Method Add Method Add Method Add Add Method Add Method Add Add Method Add Method Add Add Method Add Add Method Add Add Method Add Method Add Method Add Add Add Method Add Method Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add Add A | AddLLMockGraphQL() | MapLLMockGraphQL()Yhdistetty
| Kaikki (REST+Streaming+GraphQL+gRPC), takaperin yhteensopiva | AddLLMockStreaming() | MapLLMockStreaming()REST
| "Yksinkertaisen restin pilkkaaminen" | AddLLMockSignalR() | MapLLMockSignalR()GrafQL
| GrafQL-sovellukset | AddLLMockOpenApi() | MapLLMockOpenApi()Virtaus
SignaaliR
|---------|------------|----------|
| Reaaliaikaiset WebSocket-tiedot | MapLLMockGrpcManagement()OpenAPI
| Mock OpenAPI:n ja Swaggerin spekseistä | MapLLMockGrpc()Lisäominaisuuksia (ei lisättävää menetelmää)
| Ominaisuus Karttamenetelmä Käyttö Tapaus | MapLLMockOpenApiManagement()gRPC-hallinta
| Lataa/hallitse .proto-tiedostoja | MapLLMockApiContextManagement()gRPC kutsuu
"Invoke mock gRPC methods"
AddLLMockApi()Lataa OpenAPI-tiedot dynaamisestigRPC-palvelut sisältyvät
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.