Spaces:
Runtime error
Runtime error
| # import gradio as gr | |
| # import openai | |
| # import os | |
| # # Setup and initialization | |
| # openai.api_key = os.getenv("OPENAI_API_KEY") | |
| # from openai import OpenAI | |
| # client = OpenAI(openai.api_key=os.getenv("OPENAI_API_KEY")) | |
| # def openai_chat(prompt, chat_history): | |
| # """Generic function to handle chatting with OpenAI's GPT model.""" | |
| # try: | |
| # response = client.engines.gpt_3_5_turbo.completions.create( | |
| # prompt=prompt, | |
| # max_tokens=150 | |
| # ) | |
| # bot_message = response.choices[0].text.strip() | |
| # chat_history.append({"role": "assistant", "content": bot_message}) | |
| # return '', chat_history | |
| # except Exception as e: | |
| # return f"An error occurred: {str(e)}", chat_history | |
| # iface = gr.Interface( | |
| # fn=chatbot_response, | |
| # inputs="text", | |
| # outputs="text", | |
| # title="Chatbot", | |
| # description="Ask a question and get an answer from the chatbot." | |
| # ) | |
| # iface.launch(share=True) | |
| import gradio as gr | |
| import openai | |
| import os | |
| # Setup and initialization | |
| openai.api_key = os.getenv("OPENAI_API_KEY") | |
| def openai_chat(prompt, chat_history): | |
| """Generic function to handle chatting with OpenAI's GPT model.""" | |
| try: | |
| response = openai.ChatCompletion.create( | |
| model="gpt-3.5-turbo", | |
| messages=[ | |
| {"role": "system", "content": "You are a helpful assistant."}, | |
| {"role": "user", "content": prompt} | |
| ], | |
| max_tokens=150 | |
| ) | |
| bot_message = response.choices[0].message['content'] | |
| chat_history.append({"role": "assistant", "content": bot_message}) | |
| return '', chat_history | |
| except Exception as e: | |
| return f"An error occurred: {str(e)}", chat_history | |
| def chatbot_response(prompt, chat_history): | |
| """Handles the chat functionality.""" | |
| response, chat_history = openai_chat(prompt, chat_history) | |
| return response, chat_history | |
| # Gradio Interface Layout | |
| iface = gr.Interface( | |
| fn=chatbot_response, | |
| inputs=gr.inputs.Textbox(lines=7, label="Chat with AI"), | |
| outputs=gr.outputs.Textbox(label="Reply"), | |
| title="AI Chatbot", | |
| description="Ask anything you want", | |
| theme="compact" | |
| ) | |
| iface.launch(share=True) | |
| # import gradio as gr | |
| # import openai | |
| # import os | |
| # import json | |
| # from datetime import datetime | |
| # # Setup and initialization | |
| # openai.api_key = os.getenv("OPENAI_API_KEY") | |
| # # Shared Session Log | |
| # session_log = { | |
| # "session_id": "S1", | |
| # "interactions": [], | |
| # "outcome": {"gatekeeper_decision": "pending", "persuasion_strategy": "ongoing", "ai_influence_metric": 0} | |
| # } | |
| # # Function Definitions | |
| # def gatekeeper_chat(message, chat_history): | |
| # # """Handles the Gatekeeper chat functionality.""" | |
| # prompt = "As a gatekeeper, enforce the rules: " + "\n".join([m['content'] for m in chat_history]) + "\n" + message | |
| # response, chat_history = openai_chat(prompt, chat_history) | |
| # update_session_log("HP1", message, response) | |
| # return response, chat_history | |
| # def persuader_chat(message, chat_history): | |
| # # """Handles the Persuader chat functionality.""" | |
| # # The message could be a direct message or a request for analysis/suggestions | |
| # if message.startswith("#analyze"): | |
| # response = analyze_interaction() | |
| # else: | |
| # response = "As a persuader, I suggest: " + message | |
| # return response, chat_history | |
| # # from openai import OpenAI | |
| # # client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")) | |
| # # def openai_chat(prompt, chat_history): | |
| # # # """Generic function to handle chatting with OpenAI's GPT model.""" | |
| # # try: | |
| # # response = client.chat.completions.create( | |
| # # model="gpt-3.5-turbo", | |
| # # messages=[ | |
| # # {"role": "assistant", "content": prompt} | |
| # # ], | |
| # # max_tokens=150 | |
| # # ) | |
| # # bot_message = response.choices[0].message.content.strip() | |
| # # chat_history.append({"role": "assistant", "content": bot_message}) | |
| # # return '', chat_history | |
| # # except Exception as e: | |
| # # return f"An error occurred: {str(e)}", chat_history | |
| # from openai import OpenAI | |
| # client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")) | |
| # def openai_chat(prompt, chat_history): | |
| # """Generic function to handle chatting with OpenAI's GPT model.""" | |
| # try: | |
| # response = client.engines.gpt_3_5_turbo.completions.create( | |
| # prompt=prompt, | |
| # max_tokens=150 | |
| # ) | |
| # bot_message = response.choices[0].text.strip() | |
| # chat_history.append({"role": "assistant", "content": bot_message}) | |
| # return '', chat_history | |
| # except Exception as e: | |
| # return f"An error occurred: {str(e)}", chat_history | |
| # def openai_chat(prompt, chat_history): | |
| # """Generic function to handle chatting with OpenAI's GPT model.""" | |
| # try: | |
| # # Updated API call: Using openai.ChatCompletion.create instead of openai.Completion.create | |
| # # The 'messages' parameter now requires a list of message objects, each with a 'role' and 'content'. | |
| # response = client.chat.completions.create( | |
| # model="text-davinci-003", | |
| # messages=[ | |
| # {"role": "assistant", "content": prompt} | |
| # ], | |
| # max_tokens=150 | |
| # ) | |
| # # The response structure has changed: Accessing message content via response.choices[0].message['content'] | |
| # bot_message = response.choices[0].message['content'] | |
| # chat_history.append({"role": "assistant", "content": bot_message}) | |
| # return '', chat_history | |
| # except Exception as e: | |
| # # Error handling remains the same | |
| # return f"An error occurred: {str(e)}", chat_history | |
| # def update_session_log(actor, message, response): | |
| # # """Updates the session log with the latest interaction.""" | |
| # session_log["interactions"].append({ | |
| # "timestamp": datetime.now().isoformat(), | |
| # "actor": actor, | |
| # "message": message, | |
| # "gatekeeper_response": response | |
| # }) | |
| # def analyze_interaction(): | |
| # # """Provides analysis or suggestions based on the session log.""" | |
| # # Implement analysis logic here based on session_log | |
| # latest_interaction = session_log["interactions"][-1] if session_log["interactions"] else None | |
| # if latest_interaction: | |
| # # Example analysis logic | |
| # return f"Latest gatekeeper response: {latest_interaction['gatekeeper_response']}" | |
| # return "No interactions to analyze." | |
| # # Gradio Interface Layout | |
| # with gr.Blocks() as app: | |
| # with gr.Row(): | |
| # gr.Markdown("### Gatekeeper Chat") | |
| # gatekeeper_input, gatekeeper_button, gatekeeper_output = gr.Textbox(label="Your Message"), gr.Button("Send"), gr.Chatbot(label="Gatekeeper Chat History") | |
| # gr.Markdown("### Persuader Chat") | |
| # persuader_input, persuader_button, persuader_output = gr.Textbox(label="Your Message"), gr.Button("Send"), gr.Chatbot(label="Persuader Chat History") | |
| # gatekeeper_button.click(fn=gatekeeper_chat, inputs=[gatekeeper_input, gatekeeper_output], outputs=[gatekeeper_input, gatekeeper_output]) | |
| # persuader_button.click(fn=persuader_chat, inputs=[persuader_input, persuader_output], outputs=[persuader_input, persuader_output]) | |
| # # Launch the app | |
| # app.launch() | |