c47b9474f4
- Added `text_manager.py` to handle the creation of text libraries via FastAPI. - Introduced database connection management in `conexion.py` using PostgreSQL credentials from environment variables. - Created abstract base class `EmbedderABC` in `Base_Embedder.py` for embedding models. - Developed `OpenAIEmbedder` class to generate embeddings using OpenAI's API. - Implemented `OpenAIEmbedderModel` and repository pattern for managing OpenAI embedders in `Openai_embedder_mmr.py`. - Established `Biblioteca` class for managing text libraries and their associated notes in `biblioteca.py`. - Created SQLAlchemy models and mappers for `Biblioteca` and `Nota` in `biblioteca_mmr.py` and `notas_biblioteca_mmr.py`. - Added functionality for dynamic table generation for notes associated with libraries. - Included comprehensive methods for adding, retrieving, and managing notes and libraries in their respective repositories.
27 lines
825 B
Python
27 lines
825 B
Python
from fastapi import APIRouter, HTTPException
|
|
from pydantic import BaseModel
|
|
from typing import Optional
|
|
from backend.db.conexion import get_conexion
|
|
from src.TextManager.biblioteca import Biblioteca
|
|
|
|
router = APIRouter()
|
|
|
|
class BibliotecaIn(BaseModel):
|
|
nombre: str
|
|
descripcion: Optional[str] = ""
|
|
vector_dim: Optional[int] = None
|
|
|
|
@router.post("/")
|
|
def crear_biblioteca(biblio: BibliotecaIn):
|
|
try:
|
|
biblioteca = Biblioteca(
|
|
nombre=biblio.nombre,
|
|
descripcion=biblio.descripcion,
|
|
vector_dim=biblio.vector_dim
|
|
)
|
|
conexion = get_conexion()
|
|
modelo = biblioteca.generar_modelo_notas(conexion)
|
|
return {"id": biblioteca.id, "modelo": str(modelo.__name__)}
|
|
except Exception as e:
|
|
raise HTTPException(status_code=400, detail=str(e))
|