chatdocs / main.py
shivvamm
Deploy ChatDocs main server (single-container demo)
b496a3b
Raw
History Blame Contribute Delete
1.35 kB
from fastapi import FastAPI
import os
from routers import auth, query, prepare, admin, vectordb
from dotenv import load_dotenv
from config.db import Base, engine
from fastapi.middleware.cors import CORSMiddleware
import logging
import uvicorn
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
load_dotenv()
app = FastAPI()
# Create database tables
Base.metadata.create_all(bind=engine)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Only enable LangSmith tracing when an API key is actually configured.
if os.getenv("LANGCHAIN_API_KEY"):
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
os.environ["LANGCHAIN_PROJECT"] = "Chatbot Doc Mapping"
else:
os.environ["LANGCHAIN_TRACING_V2"] = "false"
@app.get("/")
def read_root():
logger.info("Root endpoint accessed")
return {"message": "Welcome to the ChatDocs API!"}
# Include routers
app.include_router(prepare.router)
app.include_router(query.router)
app.include_router(auth.router)
app.include_router(admin.router)
app.include_router(vectordb.router)
if __name__ == "__main__":
logger.info("Starting FastAPI application")
uvicorn.run(app, host="0.0.0.0", port=8000)