from fastapi import FastAPI, Form
from app.langchain_lhia import chat, vector_chat, milvus_vector
from app.langchain_lhia.funciones_langchain.hilo_conversacion import hilo_conversacion
from app.actualizacion_productos import actualizar_mulvus
from app.update_categories import update_categories_milvus
app = FastAPI()


@app.post("/pregunta")
def envio_pregunta(pregunta: str = Form(...), sesion: str = Form(...)):
    return chat.pregunta(pregunta, sesion)

@app.post("/pregunta_pgvector")
def envio_pregunta_pgvector(pregunta: str = Form(...)):
    return vector_chat.pregunta_pgvector(pregunta)


@app.post("/pregunta_milvus")
def envio_pregunta_milvus(pregunta: str = Form(...)):
    return milvus_vector.pregunta_milvusr(pregunta)

@app.post("/question_milvus")
def send_question_milvus(question: str = Form(...),collection: str = Form(...),amount: int = Form(...)):
    return milvus_vector.question_milvusr(question,collection,amount)

@app.post("/pregunta_hilo")
def envio_pregunta_milvus(identificador: str = Form(...), pregunta: str = Form(...)):
    return hilo_conversacion.hilo_conversacion(identificador, pregunta)

@app.post("/actualizar_productos_milvus")
def actualizar_productos_milvus(collectionName: str = Form(...)):
    return actualizar_mulvus.actualizar_productos(collectionName)


# Process to save products by categories
@app.post("/update_categories")
def update_categories(collectionName: str = Form(...)):
    return update_categories_milvus.update_categories(collectionName)


# Question products for collections 
@app.post("/question_milvus_v2")
def send_question_milvus_v2(question: str = Form(...),amount: int = Form(...)):
    return milvus_vector.question_milvusr_v2(question,amount)

# Process to save products by categories new method for lotes
@app.post("/update_categories_v2")
def update_categories_v2(collectionName: str = Form(...)):
    return update_categories_milvus.update_categories_v2(collectionName)

