File size: 1,305 Bytes
2ecc792
 
977adf2
2ecc792
5cd9bab
2ecc792
 
 
 
21bfd6f
2ecc792
ea406bd
21bfd6f
ea406bd
21bfd6f
 
 
 
 
2ecc792
 
 
 
 
 
 
 
c341d18
2ecc792
 
21bfd6f
2ecc792
21bfd6f
c341d18
21bfd6f
2ecc792
 
21bfd6f
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
import mysql.connector

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 langchain_google_genai import GoogleGenerativeAI

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/Gemini_Prompt.txt", "r") as f:
        prompt = f.read()

    prompt = PromptTemplate(template=prompt, input_variables=["instruction"])

    llm = GoogleGenerativeAI(
        model="gemini-pro",
        google_api_key=config.GOOGLE_API_KEY,
    )

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