HengJay commited on
Commit
82d0f3a
·
1 Parent(s): cf2d0a9

Refactor SNOMED-CT_Assistant.py to improve entity mapping result display with markdown table.

Browse files
Files changed (1) hide show
  1. SNOMED-CT_Assistant.py +32 -9
SNOMED-CT_Assistant.py CHANGED
@@ -129,16 +129,39 @@ def chat_input(prompt, med_text):
129
  print("entity: ", entity)
130
  results = query_chroma_db(entity, 10)
131
  results_dict = get_dict_from_chroma_results(results)
132
- entity_mapping_prompt = generate_entity_mapping_prompt(entity, results_dict)
133
- st.session_state.messages.append({"role": "user", "content": entity_mapping_prompt})
134
- entity_mapping_response = client.chat.completions.create(
135
- model=model_tag, messages=st.session_state.messages, temperature=0.5)
136
- mapping_msg = entity_mapping_response.choices[0].message.content
137
- st.session_state.messages.append({"role": "assistant", "content": mapping_msg})
138
- st.chat_message("assistant").write(mapping_msg)
 
 
 
139
 
140
-
141
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
 
143
  if "messages" not in st.session_state:
144
  st.session_state["messages"] = [{"role": "system", "content": system_prompt},
 
129
  print("entity: ", entity)
130
  results = query_chroma_db(entity, 10)
131
  results_dict = get_dict_from_chroma_results(results)
132
+ results_table = entity_mapping_result_to_table(entity, results_dict)
133
+ st.session_state.messages.append({"role": "assistant", "content": results_table})
134
+ st.chat_message("assistant").write(results_table)
135
+ # entity_mapping_prompt = generate_entity_mapping_prompt(entity, results_dict)
136
+ # st.session_state.messages.append({"role": "user", "content": entity_mapping_prompt})
137
+ # entity_mapping_response = client.chat.completions.create(
138
+ # model=model_tag, messages=st.session_state.messages, temperature=0.5)
139
+ # mapping_msg = entity_mapping_response.choices[0].message.content
140
+ # st.session_state.messages.append({"role": "assistant", "content": mapping_msg})
141
+ # st.chat_message("assistant").write(mapping_msg)
142
 
143
+
144
+ # Conver entity mapping result to markdown table
145
+ def entity_mapping_result_to_table(entity, results_dict):
146
+
147
+ ids = results_dict['ids']
148
+ concept_ids = results_dict['concept_ids']
149
+ distances = results_dict['distances']
150
+ descriptions = results_dict['descriptions']
151
+
152
+ # header
153
+ header = "| Identified Entity | Distance | IDs | SNOMED CT - Concept IDs | SNOMED CT - Descriptions |"
154
+ seperator = "| --- | --- | --- | --- | --- |"
155
+
156
+ # table
157
+ rows = []
158
+ for id, distance, concept_id, description in zip(ids, distances, concept_ids, descriptions):
159
+ row = f"| {entity} | {distance:.3f} | {id} | {concept_id} | {description} |"
160
+ rows.append(row)
161
+
162
+ # merge
163
+ markdown_table = "\n".join([header, seperator] + rows)
164
+ return markdown_table
165
 
166
  if "messages" not in st.session_state:
167
  st.session_state["messages"] = [{"role": "system", "content": system_prompt},