Реализована операции Milvus для управления документами и встраиванием, включая функции вставки, запроса и удаления. Внедрите архитектуру RAG с LLM и сервисами встраивания. Добавьте обработку текста для фрагментации и конкатенации. Создайте автономный скрипт для настройки и управления Milvus. Разработайте комплексные тесты API для обработки документов и взаимодействия с LLM, включая имитации для сервисов. Расширьте возможности конфигурации пользователя с помощью дополнительных настроек YAML.
This commit is contained in:
35
api/api.go
Normal file
35
api/api.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/labstack/echo/v4"
|
||||
|
||||
"easy_rag/internal/pkg/rag"
|
||||
"github.com/labstack/echo/v4/middleware"
|
||||
)
|
||||
|
||||
const (
|
||||
// APIVersion is the version of the API
|
||||
APIVersion = "v1"
|
||||
)
|
||||
|
||||
func NewAPI(e *echo.Echo, rag *rag.Rag) {
|
||||
// Middleware
|
||||
e.Use(middleware.Logger())
|
||||
e.Use(middleware.Recover())
|
||||
// put rag pointer in context
|
||||
e.Use(func(next echo.HandlerFunc) echo.HandlerFunc {
|
||||
return func(c echo.Context) error {
|
||||
c.Set("Rag", rag)
|
||||
return next(c)
|
||||
}
|
||||
})
|
||||
|
||||
api := e.Group(fmt.Sprintf("/api/%s", APIVersion))
|
||||
|
||||
api.POST("/upload", UploadHandler)
|
||||
api.POST("/ask", AskDocHandler)
|
||||
api.GET("/docs", ListAllDocsHandler)
|
||||
api.GET("/doc/:id", GetDocHandler)
|
||||
api.DELETE("/doc/:id", DeleteDocHandler)
|
||||
}
|
||||
Reference in New Issue
Block a user