import mysql.connector from mysql.connector import errorcode from fastapi import FastAPI, status from fastapi.exceptions import HTTPException from fastapi.templating import Jinja2Templates from backend.utils import DBConnection from backend.core.ConfigEnv import config from langchain_community.llms import Clarifai from langchain.chains import LLMChain from langchain.prompts import PromptTemplate app = FastAPI( title="Techdocs", version="V0.0.1", description="API for automatic code documentation generation!", ) from backend import router try: dbconnection = DBConnection() test_conn = DBConnection.get_client().get_server_info() # send prompt wizardcoderLM-70b-instruct-GGUF model with open("backend/utils/prompt.txt", "r") as f: prompt = f.read() prompt = PromptTemplate(template=prompt, input_variables=["instruction"]) llm = Clarifai( pat=config.CLARIFAI_PAT, user_id=config.USER_ID, app_id=config.APP_ID, model_id=config.MODEL_ID, model_version_id=config.MODEL_VERSION_ID, ) llmchain = prompt | llm app.state.llmchain = llmchain app.state.templates = Jinja2Templates(directory="./backend/templates") except mysql.connector.Error as err: raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=str(err) )