| import streamlit as st |
| from revChatGPT.V1 import Chatbot |
|
|
| def main(): |
| |
| st.set_page_config(page_title="AI Assistant: revChatGPT", page_icon=":speak_no_evil:") |
| st.subheader("AI Assistant: revChatGPT") |
| st.markdown("This app allows you to chat with ChatGPT using a reverse-engineered API library called [revChatGPT](https://github.com/acheong08/ChatGPT). Replies from ChatGPT are streamed back to the user in real-time, which gives the user an experience similar to how ChatGPT streams back its answers.") |
|
|
| |
| st.sidebar.image("https://i.ibb.co/z84mCfY/image-8.png", use_column_width=True) |
| |
| st.sidebar.subheader("Configuration") |
| st.sidebar.write("Create an account on [OpenAI's ChatGPT](https://chat.openai.com/) and save your credentials.") |
| auth_method = st.sidebar.selectbox("Authentication method:", ["Email/Password", "Session token", "Access token"]) |
|
|
| |
| if auth_method == "Email/Password": |
| email = st.sidebar.text_input("Email:") |
| password = st.sidebar.text_input("Password:", type="password") |
| st.sidebar.markdown("## Authentication Methods") |
| st.sidebar.markdown("") |
| st.sidebar.markdown("#### Email/Password") |
| st.sidebar.write("Not supported for Google/Microsoft accounts") |
| st.sidebar.markdown("----") |
| st.sidebar.markdown("#### Session token") |
| st.sidebar.write("Comes from cookies on chat.openai.com as *\"__Secure-next-auth.session-token\"*") |
| st.sidebar.markdown("----") |
| st.sidebar.markdown("#### Access token") |
| st.sidebar.write("[https://chat.openai.com/api/auth/session](https://chat.openai.com/api/auth/session)") |
| if email != "" and password != "": |
| config = {"email": email, "password": password} |
| |
| else: |
| st.write("**Please enter your email and password.**") |
| return |
| elif auth_method == "Session token": |
| session_token = st.sidebar.text_input("Session token:") |
| st.sidebar.markdown("## Authentication Methods") |
| st.sidebar.markdown("") |
| st.sidebar.markdown("#### Email/Password") |
| st.sidebar.write("Not supported for Google/Microsoft accounts") |
| st.sidebar.markdown("----") |
| st.sidebar.markdown("#### Session token") |
| st.sidebar.write("Comes from cookies on chat.openai.com as *\"__Secure-next-auth.session-token\"*") |
| st.sidebar.markdown("----") |
| st.sidebar.markdown("#### Access token") |
| st.sidebar.write("[https://chat.openai.com/api/auth/session](https://chat.openai.com/api/auth/session)") |
| if session_token != "": |
| config = {"session_token": session_token} |
| else: |
| st.write("**Please enter your session token.**") |
| return |
| else: |
| access_token = st.sidebar.text_input("Access token:") |
| st.sidebar.markdown("## Authentication Methods") |
| st.sidebar.markdown("") |
| st.sidebar.markdown("#### Email/Password") |
| st.sidebar.write("Not supported for Google/Microsoft accounts") |
| st.sidebar.markdown("----") |
| st.sidebar.markdown("#### Session token") |
| st.sidebar.write("Comes from cookies on chat.openai.com as *\"__Secure-next-auth.session-token\"*") |
| st.sidebar.markdown("----") |
| st.sidebar.markdown("#### Access token") |
| st.sidebar.write("[https://chat.openai.com/api/auth/session](https://chat.openai.com/api/auth/session)") |
| if access_token != "": |
| config = {"access_token": access_token} |
| else: |
| st.write("**Please enter your access token.**") |
| return |
|
|
| |
| chatbot = Chatbot(config=config) |
|
|
| |
| user_input = st.text_input("You: ", placeholder="Ask me anything ...", key="input") |
|
|
| if st.button("Submit", type="primary"): |
| st.markdown("----") |
| res_box = st.empty() |
|
|
| for data in chatbot.ask(user_input): |
| message = data["message"] |
| res_box.write("ChatGPT: " + message) |
|
|
| st.markdown("") |
| st.markdown("---") |
| st.markdown("") |
| st.markdown("<p style='text-align: center'><a href='https://github.com/Kaludii'>Github</a> | <a href='https://huggingface.co/Kaludi'>HuggingFace</a></p>", unsafe_allow_html=True) |
|
|
|
|
| if __name__ == "__main__": |
| main() |
|
|