| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
⚠️ ВНИМАНИЕ: Данный проект предназначен ТОЛЬКО для демонстрации и просмотра.
Лицензия: Proprietary - All Rights Reserved
Автор: Роберт Юсупов (aka turkprogrammer)
GitHub: https://github.com/turkprogrammer
ЗАПРЕЩЕНО: Использование, копирование, модификация или распространение кода без письменного разрешения автора.
РАЗРЕШЕНО: Просмотр и изучение архитектуры для образовательных целей.
Подробности см. в файле LICENSE.
Простая система Retrieval-Augmented Generation (RAG) с чистой архитектурой, использующая внешнее AI API и SQLite базу данных.
Система реализована по принципам чистой архитектуры:
go mod tidyВАЖНО: API ключ указывается в config/config.yaml. Опционально можно переопределить через переменную окружения AI_API_KEY:
export AI_API_KEY="ваш_api_ключ" # Переопределяет значение из config.yamlДля production рекомендуется использовать secret management системы (Kubernetes Secrets, Vault, AWS Secrets Manager и т.д.).
go run main.go -action=demogo run main.go -action=index -doc=path/to/your/document.txtgo run main.go -action=search -query="Ваш поисковый запрос"Реализовано:
Ограничения:
rag-system/ ├── main.go # Главный исполняемый файл ├── config/ │ └── config.yaml # Файл конфигурации ├── src/ │ ├── domain/ # Доменные сущности и интерфейсы │ │ ├── models.go │ │ └── repository.go │ ├── application/ # Сервисы приложения │ │ ├── service.go │ │ └── rag_service.go │ └── infrastructure/ # Реализация инфраструктурных компонентов │ ├── repository.go # Репозиторий документов │ └── ai/ # Клиент для работы с AI API │ └── client.go ├── go.mod ├── go.sum ├── tests/ # Тесты (будут добавлены) └── docs/ # Документация (будет добавлена)
Для запуска всех тестов в проекте:
go test ./...Для запуска модульных тестов:
go test ./tests/unit/... -vДля запуска интеграционных тестов:
go test ./tests/integration/... -vМодульные тесты (tests/unit/):
Интеграционные тесты (tests/integration/):
# Все тесты включая производительность
go test ./tests/unit/... -v
# Без тестов производительности (быстрее)
go test ./tests/unit/... -short✅ Все модульные тесты проходят успешно
=== RUN TestAIClientInitialization
--- PASS: TestAIClientInitialization (0.00s)
=== RUN TestBuildPrompt
--- PASS: TestBuildPrompt (0.00s)
=== RUN TestSQLiteRepository
--- PASS: TestSQLiteRepository (0.02s)
=== RUN TestSQLiteRepositoryWithMultipleDocuments
--- PASS: TestSQLiteRepositoryWithMultipleDocuments (0.04s)
=== RUN TestMockRepository
--- PASS: TestMockRepository (0.00s)
=== RUN TestEmptyDocument
--- PASS: TestEmptyDocument (0.00s)
=== RUN TestVeryLargeDocument
--- PASS: TestVeryLargeDocument (0.13s)
performance_test.go:45: Индексация 1MB документа заняла: 117.110797ms
=== RUN TestSpecialCharactersInQuery
--- PASS: TestSpecialCharactersInQuery (0.01s)
=== RUN TestUnicodeCharacters
--- PASS: TestUnicodeCharacters (0.01s)
=== RUN TestIndexingPerformance
--- PASS: TestIndexingPerformance (0.13s)
=== RUN TestIndexingMultipleDocuments
--- PASS: TestIndexingMultipleDocuments (0.33s)
performance_test.go:82: Индексация 100 документов заняла: 319.908985ms
=== RUN TestSearchPerformance
--- PASS: TestSearchPerformance (0.14s)
=== RUN TestConcurrentIndexing
--- PASS: TestConcurrentIndexing (0.23s)
performance_test.go:203: Параллельная индексация 20 документов заняла: 217.118241ms
PASS
ok rag-system/tests/unit 2.413s
✅ Все интеграционные тесты проходят успешно
=== RUN TestFileWithAI
[AI] Загружена конфигурация: base_url=https://api.intelligence.io.solutions/api/v1, model=Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar
[AI] Финальная конфигурация: base_url=https://api.intelligence.io.solutions/api/v1, model=Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar
file_ai_test.go:63: AI клиент успешно инициализирован из config.yaml
--- PASS: TestFileWithAI/Search_компания (0.00s)
--- PASS: TestFileWithAI/Search_2020 (0.00s)
--- PASS: TestFileWithAI/AI_Generation (0.00s)
file_ai_test.go:208: AI успешно сгенерировал ответ на основе test_doc.txt: Компания была основана в 2020 году.
--- PASS: TestFileWithAI/SearchAndGenerate (0.00s)
file_ai_test.go:224: Полный цикл RAG с test_doc.txt успешен. Ответ: В компании работает более 100 сотрудников.
--- PASS: TestFileWithAI (0.02s)
=== RUN TestFullRAGFlow
--- PASS: TestFullRAGFlow (0.00s)
=== RUN TestMultipleDocumentsFlow
--- PASS: TestMultipleDocumentsFlow (0.00s)
PASS
ok rag-system/tests/integration 0.036s
=== Демонстрация RAG системы === База данных уже содержит 3 документов Тестовые документы успешно проиндексированы! Запрос: Когда была основана компания? Найдено 1 релевантных фрагментов Фрагменты: 1. [Similarity: 0.50] Наша компания была основана в 2020 году. Мы специализиру... Ответ: Компания была основана в 2020 году. Запрос: Какие продукты предлагает компания? Найдено 1 релевантных фрагментов Фрагменты: 1. [Similarity: 0.25] Мы предлагаем широкий спектр решений: веб-приложения, ... Ответ: Компания предлагает веб-приложения, мобильные приложения, системы анализа данных и искусственного интеллекта. Запрос: Где находится главный офис? Найдено 1 релевантных фрагментов Фрагменты: 1. [Similarity: 0.50] Главный офис находится в Москве. Адрес: улица Тверская,... Ответ: Главный офис находится в Москве.
✅ Все тесты проходят успешно:
✅ Демо-режим работает корректно:
Система готова к использованию и полностью функциональна.
| Back | FazBrowse Home | New Git URL |