🌐 English · 한국어 · 日本語 · Français · Deutsch · Русский · Українська · 简体中文 · 繁體中文 · Tiếng Việt · ภาษาไทย · Português · Español
Змінюйте провайдерів, додавайте RAG, завантажуйте документи — все через єдиний API.
📖 Початок роботи · Довідник API · GitHub ↗
dotnet add package Mythosia.AI # почніть звідси (це все, що потрібно)
dotnet add package Mythosia.AI.Rag # опціонально: коли потрібен RAG
dotnet add package Mythosia.VectorDb.Postgres # опціонально: коли потрібне продуктивне векторне сховище
| Крок | Пакет | Коли |
|---|---|---|
| 1 | Mythosia.AI |
Почніть звідси — генерація тексту, стрімінг, виклик функцій, структурований вивід (OpenAI / Claude / Gemini / Grok / DeepSeek / Perplexity) |
| 2 | Mythosia.AI.Rag |
Коли потрібен RAG — розбивка тексту, ембедінги, гібридний пошук, реранкінг, InMemory-сховище, завантажувачі документів (Word / Excel / PowerPoint / PDF) |
| 3 | Mythosia.VectorDb.Postgres / Qdrant / Pinecone |
Коли замість InMemory потрібне продуктивне векторне сховище — оберіть одне |
graph TD
subgraph "🔗 Orchestration Layer"
Rag["<b>Mythosia.AI.Rag</b><br/>RagPipeline · TextSplitters<br/>EmbeddingProviders · HybridSearch · Reranking<br/><i>netstandard2.1 · v7.5.0</i>"]
end
subgraph "⚡ Core AI"
AI["<b>Mythosia.AI</b><br/>OpenAI · Anthropic · Google<br/>xAI · DeepSeek · Perplexity<br/><i>netstandard2.1 · v6.5.0</i>"]
AIAbs["<b>Mythosia.AI.Abstractions</b><br/>IAIService · shared models<br/><i>netstandard2.1 · v2.3.0</i>"]
end
subgraph "🔌 Provider Packages"
Alibaba["<b>Mythosia.AI.Providers.Alibaba</b><br/>Qwen / Alibaba provider package<br/><i>netstandard2.1 · v1.2.6</i>"]
end
subgraph "📄 Document Loaders"
Office["<b>Mythosia.Documents.Office</b><br/>Word · Excel · PowerPoint<br/><i>netstandard2.1 · v1.1.0</i>"]
Pdf["<b>Mythosia.Documents.Pdf</b><br/>PdfPig Parser<br/><i>netstandard2.1 · v1.1.1</i>"]
end
subgraph "📐 Composite Abstractions"
RagAbs["<b>Mythosia.AI.Rag.Abstractions</b><br/>ITextSplitter · IEmbeddingProvider<br/>IContextBuilder · IRetrievalStrategy · IReranker<br/>RagDocument<br/><i>netstandard2.1 · v6.2.0</i>"]
end
subgraph "🗄️ Vector Stores — оберіть одне або кілька"
InMem["<b>Mythosia.VectorDb.InMemory</b><br/>Cosine Similarity · TopK · BM25<br/><i>netstandard2.1 · v4.1.0</i>"]
Pine["<b>Mythosia.VectorDb.Pinecone</b><br/>Managed Index · Namespace · Scope<br/><i>netstandard2.1 · v4.0.1</i>"]
Pg["<b>Mythosia.VectorDb.Postgres</b><br/>pgvector · HNSW · IVFFlat · HybridSearch<br/><i>net10.0 · v10.7.1</i>"]
Qd["<b>Mythosia.VectorDb.Qdrant</b><br/>gRPC · Cosine · Euclidean · Dot · HybridSearch<br/><i>netstandard2.1 · v4.1.1</i>"]
end
subgraph "🧱 Foundation Abstractions"
LoaderAbs["<b>Mythosia.Documents.Abstractions</b><br/>IDocumentLoader · IDocumentParser<br/>ParsedDocument · DoclingDocument<br/><i>netstandard2.1 · v1.2.0</i>"]
VdbAbs["<b>Mythosia.VectorDb.Abstractions</b><br/>IVectorStore · HybridSearchAsync · VectorRecord<br/>VectorFilter · VectorSearchResult · Bm25Tokenizer<br/><i>netstandard2.1 · v4.0.1</i>"]
end
%% Core AI internal
AI --> AIAbs
%% Orchestration → dependencies
Rag --> AIAbs
Rag --> Office
Rag --> Pdf
Rag --> RagAbs
Rag --> InMem
%% Provider packages → core
Alibaba --> AI
%% Composite → Foundation
RagAbs --> VdbAbs
%% Loaders → Foundation
Office --> LoaderAbs
Pdf --> LoaderAbs
%% VectorStores → Foundation
InMem --> VdbAbs
Pine --> VdbAbs
Pg --> VdbAbs
Qd --> VdbAbs
Цей репозиторій містить приклад Chat UI на базі Mythosia.AI — запустіть Mythosia.AI.Samples.ChatUi, щоб випробувати бібліотеку на практиці.
Запустіть Mythosia.AI.Samples.ChatUi локально:
# з кореня репозиторію
dotnet run --project samples/Mythosia.AI.Samples.ChatUi2026-02-27.18-21-02.mp4
using Mythosia.AI;
var service = new OpenAIService(apiKey, httpClient);
var response = await service.GetCompletionAsync("Hello!");await foreach (var token in service.StreamAsync("Tell me a story"))
{
Console.Write(token);
}Усі провайдери з підтримкою міркувань (OpenAI, Claude, Gemini, Grok, DeepSeek) використовують однаковий патерн стрімінгу:
await foreach (var content in service.StreamAsync(message, new StreamOptions().WithReasoning()))
{
if (content.Type == StreamingContentType.Reasoning)
Console.Write($"[Think] {content.Content}");
else if (content.Type == StreamingContentType.Text)
Console.Write(content.Content);
}var service = new OpenAIService(apiKey, httpClient)
.WithFunction(
"get_weather",
"Gets the current weather for a location",
("location", "The city and country", required: true),
(string location) => $"The weather in {location} is sunny, 22C"
);
var response = await service.GetCompletionAsync("What's the weather in Seoul?");// Десеріалізація відповідей LLM напряму в C# POCO з автовідновленням
var result = await service.GetCompletionAsync<WeatherResponse>(
"What's the weather in Seoul?");// Колекції працюють напряму — жодних обгорток не потрібно
var items = await service.GetCompletionAsync<List<ItemDto>>(
"Extract all entities from this document...");// Стрімте фрагменти тексту в реальному часі + отримуйте фінальний десеріалізований об'єкт
var run = service.BeginStream(prompt).As<MyDto>();
await foreach (var chunk in run.Stream())
Console.Write(chunk); // інтерфейс у реальному часі
MyDto dto = await run.Result; // розпарсено й автоматично відновлено// Автоматичне резюмування старих повідомлень при довгому діалозі
service.ConversationPolicy = SummaryConversationPolicy.ByMessage(
triggerCount: 20,
keepRecentCount: 5
);
// Тригер за кількістю токенів
service.ConversationPolicy = SummaryConversationPolicy.ByToken(
triggerTokens: 3000,
keepRecentTokens: 1000
);
// Використовуйте як звичайно — резюмування відбувається автоматично
await service.GetCompletionAsync("Continue our conversation...");
// При стрімінгу викличте політику резюмування явно перед StreamAsync()
await service.ApplySummaryPolicyIfNeededAsync();
await foreach (var chunk in service.StreamAsync("Continue..."))
Console.Write(chunk.Content);
// Збереження/відновлення резюме між сесіями
string saved = service.ConversationPolicy.CurrentSummary;
policy.LoadSummary(saved);dotnet add package Mythosia.AI.Ragusing Mythosia.AI.Rag;
var service = new AnthropicService(apiKey, httpClient)
.WithRag(rag => rag
.AddDocument("manual.txt")
.AddDocument("policy.txt")
);
var response = await service.GetCompletionAsync("What is the refund policy?");| Провайдер | Пакет | Моделі |
|---|---|---|
| OpenAI | Mythosia.AI |
GPT-5.5 / 5.5 Pro / 5.4 / 5.4 Mini / 5.4 Nano / 5.4 Pro / 5.3 Codex / 5.2 / 5.2 Pro / 5.2 Codex / 5.1 / 5 / 5 Pro / 5 Mini / 5 Nano, GPT-4.1 / 4.1 Mini / 4.1 Nano, GPT-4o / 4o Mini, o3 / o3 Pro |
| Anthropic | Mythosia.AI |
Claude Fable 5, Opus 4.8 / 4.7 / 4.6 / 4.5 / 4.1 / 4, Sonnet 4.6 / 4.5, Haiku 4.5 |
Mythosia.AI |
Gemini 3.1 Pro Preview, Gemini 3.5 Flash, Gemini 3 Flash Preview, Gemini 3.1 Flash-Lite, Gemini 2.5 Pro/Flash/Flash-Lite | |
| xAI | Mythosia.AI |
Grok 4.3, Grok 4.20 (reasoning / non-reasoning), Grok Build 0.1, Grok 3 Mini |
| DeepSeek | Mythosia.AI |
Chat, Reasoner |
| Perplexity | Mythosia.AI |
Sonar, Sonar Pro, Sonar Reasoning Pro |
| Alibaba / Qwen | Mythosia.AI.Providers.Alibaba |
Qwen Max / Plus / Turbo / Qwen3 / Qwen3.5 варіанти |
| Пакет | NuGet | Опис |
|---|---|---|
| Mythosia.AI | Основна бібліотека — вбудовані провайдери, стрімінг, виклик функцій та мультимодальна підтримка | |
| Mythosia.AI.Abstractions | Інтерфейс IAIService та спільні моделі — легкий контрактний пакет для бібліотек |
|
| Mythosia.AI.Providers.Alibaba | Пакет провайдера Alibaba / Qwen на базі Mythosia.AI |
| Пакет | NuGet | Опис |
|---|---|---|
| Mythosia.AI.Rag | Fluent-розширення RAG для IAIService з API .WithRag() |
|
| Mythosia.AI.Rag.Abstractions | Інтерфейси та моделі компонентів RAG-пайплайну |
| Пакет | NuGet | Опис |
|---|---|---|
| Mythosia.Documents.Abstractions | Інтерфейси та моделі завантажувачів документів (IDocumentLoader, DoclingDocument) |
|
| Mythosia.Documents.Office | OpenXml-парсери для Word / Excel / PowerPoint | |
| Mythosia.Documents.Pdf | PDF-парсер на базі PdfPig |
Оберіть одне або кілька — усі реалізують
IVectorStoreз пакету Abstractions.
| Пакет | NuGet | Опис |
|---|---|---|
| Mythosia.VectorDb.Abstractions | Контракти IVectorStore · VectorRecord · VectorFilter |
|
| Mythosia.VectorDb.InMemory | Сховище в пам'яті — без інфраструктури, ідеально для прототипування | |
| Mythosia.VectorDb.Pinecone | Pinecone HTTP API — ізоляція за індексом/namespace/scope для керованої векторної БД | |
| Mythosia.VectorDb.Postgres | PostgreSQL + pgvector — індекси HNSW / IVFFlat, готово для продакшену | |
| Mythosia.VectorDb.Qdrant | Qdrant gRPC-клієнт — Cosine / Euclidean / Dot, автоматичне розгортання |
src/
core/
Mythosia.AI/ # Основна AI-бібліотека
Mythosia.AI.Abstractions/ # Інтерфейс IAIService та спільні моделі
Mythosia.AI.Providers.Alibaba/ # Пакет провайдера Alibaba / Qwen
loaders/
Mythosia.Documents.Abstractions/ # Контракти завантажувачів документів (IDocumentLoader, DoclingDocument)
Mythosia.Documents.Office/ # Завантажувачі документів Office (Word/Excel/PowerPoint)
Mythosia.Documents.Pdf/ # Завантажувач PDF-документів
rag/
Mythosia.AI.Rag/ # RAG Fluent API та пайплайн
Mythosia.AI.Rag.Abstractions/ # Інтерфейси та моделі RAG (RagDocument)
vectordb/
Mythosia.VectorDb.Abstractions/ # Контракти векторних сховищ
Mythosia.VectorDb.InMemory/ # Векторне сховище в пам'яті
Mythosia.VectorDb.Pinecone/ # Векторне сховище Pinecone
Mythosia.VectorDb.Postgres/ # Сховище PostgreSQL + pgvector
Mythosia.VectorDb.Qdrant/ # Векторне сховище Qdrant
samples/ # Приклади застосунків
tests/ # Проєкти модульних / інтеграційних тестів
dotnet add package Mythosia.AIДля розширених LINQ-операцій з потоками:
dotnet add package System.Linq.Async- Посібник з основ
- README Mythosia.AI Повний довідник API: виклик функцій, стрімінг та налаштування моделей
- README Mythosia.AI.Rag Використання RAG-пайплайну та власні реалізації
- Посібник із завантажувачів
- Примітки до релізів
Проєкт розповсюджується під ліцензією MIT.
Спочатку цей проєкт був частиною Mythosia.