Spaces:
No application file
No application file
| import sys, os | |
| sys.path.append(os.path.join(os.path.dirname(__file__), "..", "src")) | |
| from ChatCAD_R.chat_bot_RAG import gpt_bot | |
| def initialize_chatbot(api_key=None): | |
| if api_key is None: | |
| api_key = input("Please enter your OPEN-AI API key: ") | |
| try: | |
| chatbot_bindings = gpt_bot(engine="gpt-4o", api_key=api_key) | |
| print("Chatbot initialized successfully") | |
| return chatbot_bindings | |
| except Exception as e: | |
| print("Failed to initialize openai chatbot: ", e) | |
| return None | |
| def handle_text_input(chatbot_bindings, input_text, message_history, force_generate=False): | |
| # yes this function is trivial and unnecessary but it may help in debugging | |
| response, check, query, abnormality_check, [raw_topic, cos_sim], knowledge = chatbot_bindings.chat_report(input_text, str(message_history), force_generate) | |
| return response, check, query, abnormality_check, [raw_topic, cos_sim], knowledge | |
| def concat_history(message_history:list)->str: | |
| ret="" | |
| for event in message_history: | |
| ret+=f"{event['role']}: {event['content']}\n" | |
| return ret | |
| def MRG(image, api_key=None): | |
| # get image input and generate medical report, using original chatcad | |
| chatbot = initialize_chatbot(api_key) | |
| response, modality = chatbot.report_zh(image) | |
| return response | |
| def RAG(report, api_key=None): | |
| chatbot = initialize_chatbot(api_key) | |
| message_history = [{"role": "user", "content": report}] | |
| ref_record=concat_history(message_history) | |
| ans = chatbot.chat("", ref_record) | |
| if type(ans) == str: # casual question | |
| return ans | |
| response, check, query, abnormality_check, [raw_topic, cos_sim], knowledge = ans | |
| return response |