HanLee commited on
Commit
477f1cf
·
1 Parent(s): adb96e6
Files changed (1) hide show
  1. app/app.py +39 -0
app/app.py CHANGED
@@ -55,6 +55,39 @@ def process_file(*, file: AskFileResponse) -> List[Document]:
55
  return docs
56
 
57
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  @cl.on_chat_start
59
  async def on_chat_start():
60
  """This function is written to prepare the environments for the chat
@@ -77,6 +110,12 @@ async def on_chat_start():
77
  msg = cl.Message(content=f"Processing `{file.name}`...")
78
  await msg.send()
79
 
 
 
 
 
 
 
80
  model = ChatOpenAI(
81
  model="gpt-3.5-turbo-16k-0613",
82
  streaming=True
 
55
  return docs
56
 
57
 
58
+ def create_search_engine(*, file: AskFileResponse) -> VectorStore:
59
+
60
+ # Process and save data in the user session
61
+ docs = process_file(file=file)
62
+ cl.user_session.set("docs", docs)
63
+
64
+ encoder = OpenAIEmbeddings(
65
+ model="text-embedding-ada-002"
66
+ )
67
+
68
+ # Initialize Chromadb client and settings, reset to ensure we get a clean
69
+ # search engine
70
+ client = chromadb.EphemeralClient()
71
+ client_settings=Settings(
72
+ allow_reset=True,
73
+ anonymized_telemetry=False
74
+ )
75
+ search_engine = Chroma(
76
+ client=client,
77
+ client_settings=client_settings
78
+ )
79
+ search_engine._client.reset()
80
+
81
+ search_engine = Chroma.from_documents(
82
+ client=client,
83
+ documents=docs,
84
+ embedding=encoder,
85
+ client_settings=client_settings
86
+ )
87
+
88
+ return search_engine
89
+
90
+
91
  @cl.on_chat_start
92
  async def on_chat_start():
93
  """This function is written to prepare the environments for the chat
 
110
  msg = cl.Message(content=f"Processing `{file.name}`...")
111
  await msg.send()
112
 
113
+ try:
114
+ search_engine = await cl.make_async(create_search_engine)(file=file)
115
+ except Exception as e:
116
+ await cl.Message(content=f"Error: {e}").send()
117
+ raise SystemError
118
+
119
  model = ChatOpenAI(
120
  model="gpt-3.5-turbo-16k-0613",
121
  streaming=True