File size: 1,983 Bytes
2ecc792
 
 
977adf2
2ecc792
5cd9bab
2ecc792
 
 
 
 
 
ea406bd
 
 
2ecc792
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5cd9bab
 
 
ea406bd
 
 
 
 
fde59e3
ea406bd
 
182144a
ea406bd
fde59e3
ea406bd
 
 
 
 
 
 
 
5cd9bab
2ecc792
 
 
 
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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.llms import Clarifai
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate

from fastapi_mail import ConnectionConfig, FastMail

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 = LLMChain(
        prompt=prompt,
        llm=llm
    )
    app.state.llmchain = llmchain


    app.state.templates = Jinja2Templates(directory="./backend/templates")


    conf = ConnectionConfig(
        MAIL_USERNAME=config.MAIL_USERNAME,
        MAIL_PASSWORD=config.MAIL_PASSWORD,
        MAIL_FROM=config.MAIL_FROM,
        MAIL_PORT=2525,
        MAIL_SERVER="smtp.caffienecrewhacks.tech",
        MAIL_STARTTLS=True,
        MAIL_SSL_TLS=False,
        TEMPLATE_FOLDER="backend/templates",
        USE_CREDENTIALS = True,
        VALIDATE_CERTS = False
        
        # MAIL_TLS=True,
        # MAIL_SSL=False
    )

    app.state.mail_client = FastMail(conf)



except mysql.connector.Error as err:
    raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=str(err))