1
0

Реализована операции Milvus для управления документами и встраиванием, включая функции вставки, запроса и удаления. Внедрите архитектуру RAG с LLM и сервисами встраивания. Добавьте обработку текста для фрагментации и конкатенации. Создайте автономный скрипт для настройки и управления Milvus. Разработайте комплексные тесты API для обработки документов и взаимодействия с LLM, включая имитации для сервисов. Расширьте возможности конфигурации пользователя с помощью дополнительных настроек YAML.

This commit is contained in:
Dmitriy Fofanov
2025-09-19 11:38:31 +03:00
parent 8e7aab5181
commit 636096fd34
38 changed files with 3420 additions and 28 deletions

View File

@@ -0,0 +1,20 @@
package database
import "easy_rag/internal/models"
// database interface
// Database defines the interface for interacting with a database
type Database interface {
SaveDocument(document models.Document) error // the content will be chunked and saved
GetDocumentInfo(id string) (models.Document, error) // return the document with the given id without content
GetDocument(id string) (models.Document, error) // return the document with the given id with content assembled
Search(vector [][]float32) ([]models.Embedding, error)
ListDocuments() ([]models.Document, error)
DeleteDocument(id string) error
SaveEmbeddings(embeddings []models.Embedding) error
// to implement in future
// SearchByCategory(category []string) ([]Embedding, error)
// SearchByMetadata(metadata map[string]string) ([]Embedding, error)
// GetAllEmbeddingByDocumentID(documentID string) ([]Embedding, error)
}