davidfearne commited on
Commit
bca671c
·
verified ·
1 Parent(s): 3096734

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -16
app.py CHANGED
@@ -14,8 +14,7 @@ import os
14
 
15
  df_chunks = pd.read_pickle('Chunks_Complete.pkl')
16
 
17
- placeHolderPersona1 = """
18
- ##Mission
19
  Please create a highly targeted query for a semantic search engine. The query must represent the conversation to date.
20
  ** You will be given the converstaion to date in the user prompt.
21
  ** If no converstaion provided then this is the first converstaion
@@ -49,8 +48,8 @@ def format_elapsed_time(time):
49
  # Format the elapsed time to two decimal places
50
  return "{:.2f}".format(time)
51
 
52
- def search_knowledgebase(query, k):
53
- results = retriever(query, k)
54
  return results
55
 
56
  def process_search_results(search_results):
@@ -109,7 +108,7 @@ def lookup_related_chunks(df_chunks, chunk_id):
109
  return df_chunks[(df_chunks['Title'] == title) & (df_chunks['PageNumber'].isin(page_range))]
110
 
111
 
112
- def search_and_reconstruct(query, df_chunks, k):
113
  """
114
  Combines search, lookup of related chunks, and text reconstruction.
115
 
@@ -119,7 +118,7 @@ def search_and_reconstruct(query, df_chunks, k):
119
  :param top_k: Number of top search results to retrieve.
120
  :return: A list of dictionaries with document title, page number, and reconstructed text.
121
  """
122
- search_results = search_knowledgebase(query, k)
123
  processed_results = process_search_results(search_results)
124
 
125
  reconstructed_results = []
@@ -131,14 +130,14 @@ def search_and_reconstruct(query, df_chunks, k):
131
 
132
  reconstructed_results.append({
133
  "Title": result['Title'],
134
- "Score": result['score'],
135
  "PageNumber": result['PageNumber'],
136
  "ReconstructedText": reconstructed_text
137
  })
138
 
139
  return reconstructed_results
140
 
141
- def call_chat_api(data: ChatRequestClient, k):
142
  url = "https://agent-builder-api.greensea-b20be511.northeurope.azurecontainerapps.io/chat/"
143
  # Validate and convert the data to a dictionary
144
  validated_data = data.dict()
@@ -149,7 +148,7 @@ def call_chat_api(data: ChatRequestClient, k):
149
  if response.status_code == 200:
150
  body = response.json()
151
  query = body.get("content")
152
- final_results = search_and_reconstruct(query, df_chunks, k)
153
  return body, final_results # Return the JSON response if successful
154
  else:
155
  return "An error occured" # Return the raw response text if not successful
@@ -171,8 +170,7 @@ persona1SystemMessage = st.sidebar.text_area("Query Designer System Message", va
171
 
172
  llm1 = st.sidebar.selectbox("Model Selection", ['GPT-4', 'GPT3.5'], key='persona1_size')
173
  temp1 = st.sidebar.slider("Temperature", min_value=0.0, max_value=1.0, step=0.1, value=0.6, key='persona1_temp')
174
- tokens1 = st.sidebar.slider("Tokens", min_value=1, max_value=4000, step=100, value=500, key='persona1_tokens')
175
- k = st.sidebar.slider("Returned Docs", min_value=1, max_value=10, step=1, value=3, key='k')
176
 
177
  st.sidebar.caption(f"Session ID: {genuuid()}")
178
 
@@ -225,7 +223,7 @@ else:
225
  temperature2=0.2
226
  )
227
 
228
- response, retrival = call_chat_api(data, k)
229
  agent_message = response.get("content", "No response received from the agent.")
230
  elapsed_time = response.get("elapsed_time", 0)
231
  st.session_state.messages.append({"role": "assistant", "content": agent_message})
@@ -238,14 +236,13 @@ else:
238
  st.markdown(message["content"])
239
 
240
  if response:
241
- # st.chat_message("assistant").markdown(response.get("content", "No response"))
242
  st.caption(f"##### Time taken: {format_elapsed_time(response.get('elapsed_time', 0))} seconds")
243
 
244
  with col2:
245
  for entry in retrival:
246
  with st.container():
247
  st.write(f"**Title:** {entry['Title']}")
 
248
  st.write(f"**Page Number:** {entry['PageNumber']}")
249
- st.text_area("Grounding Text", entry['ReconstructedText'], height=150)
250
-
251
-
 
14
 
15
  df_chunks = pd.read_pickle('Chunks_Complete.pkl')
16
 
17
+ placeHolderPersona1 = """##Mission
 
18
  Please create a highly targeted query for a semantic search engine. The query must represent the conversation to date.
19
  ** You will be given the converstaion to date in the user prompt.
20
  ** If no converstaion provided then this is the first converstaion
 
48
  # Format the elapsed time to two decimal places
49
  return "{:.2f}".format(time)
50
 
51
+ def search_knowledgebase(query):
52
+ results = retriever(query)
53
  return results
54
 
55
  def process_search_results(search_results):
 
108
  return df_chunks[(df_chunks['Title'] == title) & (df_chunks['PageNumber'].isin(page_range))]
109
 
110
 
111
+ def search_and_reconstruct(query, df_chunks):
112
  """
113
  Combines search, lookup of related chunks, and text reconstruction.
114
 
 
118
  :param top_k: Number of top search results to retrieve.
119
  :return: A list of dictionaries with document title, page number, and reconstructed text.
120
  """
121
+ search_results = search_knowledgebase(query)
122
  processed_results = process_search_results(search_results)
123
 
124
  reconstructed_results = []
 
130
 
131
  reconstructed_results.append({
132
  "Title": result['Title'],
133
+ "score": result['score'],
134
  "PageNumber": result['PageNumber'],
135
  "ReconstructedText": reconstructed_text
136
  })
137
 
138
  return reconstructed_results
139
 
140
+ def call_chat_api(data: ChatRequestClient):
141
  url = "https://agent-builder-api.greensea-b20be511.northeurope.azurecontainerapps.io/chat/"
142
  # Validate and convert the data to a dictionary
143
  validated_data = data.dict()
 
148
  if response.status_code == 200:
149
  body = response.json()
150
  query = body.get("content")
151
+ final_results = search_and_reconstruct(query, df_chunks)
152
  return body, final_results # Return the JSON response if successful
153
  else:
154
  return "An error occured" # Return the raw response text if not successful
 
170
 
171
  llm1 = st.sidebar.selectbox("Model Selection", ['GPT-4', 'GPT3.5'], key='persona1_size')
172
  temp1 = st.sidebar.slider("Temperature", min_value=0.0, max_value=1.0, step=0.1, value=0.6, key='persona1_temp')
173
+ tokens1 = st.sidebar.slider("Tokens", min_value=0, max_value=4000, step=100, value=500, key='persona1_tokens')
 
174
 
175
  st.sidebar.caption(f"Session ID: {genuuid()}")
176
 
 
223
  temperature2=0.2
224
  )
225
 
226
+ response, retrival = call_chat_api(data)
227
  agent_message = response.get("content", "No response received from the agent.")
228
  elapsed_time = response.get("elapsed_time", 0)
229
  st.session_state.messages.append({"role": "assistant", "content": agent_message})
 
236
  st.markdown(message["content"])
237
 
238
  if response:
239
+ st.chat_message("assistant").markdown(response.get("content", "No response"))
240
  st.caption(f"##### Time taken: {format_elapsed_time(response.get('elapsed_time', 0))} seconds")
241
 
242
  with col2:
243
  for entry in retrival:
244
  with st.container():
245
  st.write(f"**Title:** {entry['Title']}")
246
+ st.write(f"**Score** {entry['score']}")
247
  st.write(f"**Page Number:** {entry['PageNumber']}")
248
+ st.write("Grounding Text", entry['ReconstructedText'], height=150)