ShynBui commited on
Commit
052505d
·
verified ·
1 Parent(s): e08de36

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +53 -0
app.py ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from langchain_community.utilities import SQLDatabase
2
+ from langchain_core.callbacks import BaseCallbackHandler
3
+ from typing import TYPE_CHECKING, Any, Optional, TypeVar, Union
4
+ from uuid import UUID
5
+ from langchain_community.agent_toolkits import create_sql_agent
6
+ from langchain_openai import ChatOpenAI
7
+ from langchain_community.vectorstores import Chroma
8
+ from langchain_core.example_selectors import SemanticSimilarityExampleSelector
9
+ from langchain_openai import OpenAIEmbeddings
10
+ from langchain.agents.agent_toolkits import create_retriever_tool
11
+ from langchain_core.output_parsers import JsonOutputParser
12
+ import os
13
+ from langchain_core.prompts import (
14
+ ChatPromptTemplate,
15
+ FewShotPromptTemplate,
16
+ MessagesPlaceholder,
17
+ PromptTemplate,
18
+ SystemMessagePromptTemplate,
19
+ )
20
+ import ast
21
+ import re
22
+ from utils import query_as_list, get_answer
23
+ import gradio as gr
24
+
25
+ llm = ChatOpenAI(model="gpt-4o-mini", temperature=0, api_key=os.environ['API_KEY'])
26
+ example_selector = SemanticSimilarityExampleSelector.from_examples(
27
+ examples,
28
+ OpenAIEmbeddings(model="text-embedding-3-small", api_key=os.environ['API_KEY']),
29
+ Chroma(persist_directory="data"),
30
+ # Chroma,
31
+ k=5,
32
+ input_keys=["input"],
33
+ )
34
+
35
+ db = SQLDatabase.from_uri("sqlite:///attendance_system.db")
36
+
37
+ employee = query_as_list(db, "SELECT FullName FROM Employee")
38
+
39
+ vector_db = Chroma.from_texts(employee, OpenAIEmbeddings(model="text-embedding-3-small", api_key=os.environ['API_KEY']))
40
+ retriever = vector_db.as_retriever(search_kwargs={"k": 15})
41
+ description = """Use to look up values to filter on. Input is an approximate spelling of the proper noun, output is \
42
+ valid proper nouns. Use the noun most similar to the search."""
43
+ retriever_tool = create_retriever_tool(
44
+ retriever,
45
+ name="search_proper_nouns",
46
+ description=description,
47
+ )
48
+
49
+
50
+ if __name__ == "__main__":
51
+ demo = gr.Interface(fn=get_answer, inputs="text", outputs="text")
52
+ demo.launch()
53
+