File size: 1,366 Bytes
2ecc792
9b1f57f
2ecc792
977adf2
2ecc792
5cd9bab
2ecc792
 
 
 
9b1f57f
2ecc792
ea406bd
9b1f57f
ea406bd
21bfd6f
 
 
 
 
2ecc792
 
 
 
 
 
 
 
5782a92
2ecc792
 
21bfd6f
2ecc792
9b1f57f
 
 
 
 
 
2ecc792
 
9b1f57f
2ecc792
 
5cd9bab
 
 
2ecc792
21bfd6f
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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)
    )