(fileId: Optional[str], fileGPT: Optional[FileGPT] = None)
| 10 | |
| 11 | |
| 12 | def file_chat(fileId: Optional[str], fileGPT: Optional[FileGPT] = None): |
| 13 | # client = OpenAI(openai_api_key=os.environ.get("OPENAI_API_KEY")) |
| 14 | |
| 15 | if fileGPT is None: |
| 16 | fileGPT = FileGPT() |
| 17 | |
| 18 | if "openai_model" not in st.session_state: |
| 19 | st.session_state["openai_model"] = "gpt-3.5-turbo" |
| 20 | |
| 21 | if "messages" not in st.session_state: |
| 22 | # TODO 加载历史会话 |
| 23 | st.session_state.messages = [] |
| 24 | |
| 25 | for message in st.session_state.messages: |
| 26 | with st.chat_message(message["role"]): |
| 27 | st.markdown(message["content"]) |
| 28 | |
| 29 | if question := st.chat_input("What is up?"): |
| 30 | st.session_state.messages.append({"role": "user", "content": question}) |
| 31 | with st.chat_message("user"): |
| 32 | st.markdown(question) |
| 33 | |
| 34 | with st.chat_message("assistant"): |
| 35 | message_placeholder = st.empty() |
| 36 | full_response = fileGPT.askQuestion(question=question, fileID=fileId) |
| 37 | |
| 38 | message_placeholder.markdown(full_response) |
| 39 | st.session_state.messages.append({"role": "assistant", "content": full_response}) |
| 40 | |
| 41 | |
| 42 | def sql_chat(dbId: Optional[str], sqlGPT: Optional[SqlGPT] = None): |
no test coverage detected