|
- import os
-
- from constants.request import OpenAIChatMsgIn, KnowledgeBaseMsgIn
- from fastapi.responses import StreamingResponse
- import db.milvus as milvus
- import utils.config as config
- import router.router as router
- import constants.response as response
-
- from fastapi import File, Form, Body, Query, UploadFile
- from langchain.embeddings import OpenAIEmbeddings
-
- async def doc_upload(file: UploadFile):
- config = router.kb_config
-
- # Save to temp file
- file_content = await file.read()
-
- # Create path
- if not os.path.exists(config.get_app_file_dir()):
- os.makedirs(config.get_app_file_dir())
-
- filepath = os.path.join(config.get_app_file_dir(), file.filename)
-
- try:
- with open(filepath, "wb") as f:
- f.write(file_content)
- except Exception as e:
- return response.BaseResponse(code=500, msg=f"{file.filename} Upload error: {e}")
-
- # Get db
- db = milvus.MilvusDBService(
- embeddings=OpenAIEmbeddings(
- model=config.get_fastchat_models_embedding_model_name()),
- host=config.get_milvus_host(),
- port=config.get_milvus_port(),
- top_k=config.get_milvus_top_k(),
- score_threshold=config.get_milvus_score_threshold()
- )
-
- db.insert(filepath)
-
- return response.BaseResponse(code=200, msg=f"{file.filename} Upload success")
|