File size: 2,265 Bytes
2ecc792
 
 
 
 
5cd9bab
2ecc792
 
 
 
 
 
 
 
5cd9bab
b60b60f
 
 
5cd9bab
2ecc792
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5cd9bab
 
 
 
bd2012c
5cd9bab
6ad44c3
 
5cd9bab
 
 
 
 
 
 
 
 
 
 
b60b60f
 
 
 
 
 
 
 
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
77
78
79
80
81
82
83
84
85
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
import yagmail
from jinja2 import Environment, FileSystemLoader
import os

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


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

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

    #testing yagmail
    yag = yagmail.SMTP(config.MAIL_USERNAME, config.MAIL_PASSWORD)
    app.state.yagmail = yag
    env = Environment(
    loader=FileSystemLoader('./backend/templates/'))
    app.state.jinjaenv = env




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