Реализована операции Milvus для управления документами и встраиванием, включая функции вставки, запроса и удаления. Внедрите архитектуру RAG с LLM и сервисами встраивания. Добавьте обработку текста для фрагментации и конкатенации. Создайте автономный скрипт для настройки и управления Milvus. Разработайте комплексные тесты API для обработки документов и взаимодействия с LLM, включая имитации для сервисов. Расширьте возможности конфигурации пользователя с помощью дополнительных настроек YAML.
This commit is contained in:
20
internal/database/database.go
Normal file
20
internal/database/database.go
Normal 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)
|
||||
}
|
||||
Reference in New Issue
Block a user