Spaces:
Sleeping
Sleeping
| import openai | |
| import gradio as gr | |
| # Initialize an empty conversation history list | |
| conversation_history = [] | |
| def chatbot_with_submit(user_input, api_token): | |
| global conversation_history | |
| # If this is the first user input, provide the chatbot introduction message | |
| if not conversation_history: | |
| conversation_history.append({"content": "You are an environmental chatbot named EcoGuide. Please provide information and advice on climate-related topics only. This includes questions related to climate change, environmental issues, sustainable practices, renewable energy, and biodiversity conservation. Please avoid responding to non-environmental topics or questions that are not related to climate or environmental concerns."}) | |
| # Add the user input to the conversation history | |
| conversation_history.append({"content": user_input}) | |
| # Set the OpenAI API key | |
| openai.api_key = api_token | |
| # Use OpenAI's API to generate a response | |
| prompt = "\n".join([message['content'] for message in conversation_history]) | |
| response = openai.Completion.create( | |
| engine="gpt-3.5-turbo", | |
| prompt=prompt, | |
| temperature=0.7, | |
| max_tokens=1024, | |
| top_p=1, | |
| frequency_penalty=0, | |
| presence_penalty=0 | |
| ) | |
| # Add the chatbot's response to the conversation history | |
| chatbot_reply = response.choices[0].text.strip() | |
| conversation_history.append({"content": chatbot_reply}) | |
| # Return the chatbot's response | |
| return chatbot_reply | |
| my_input = gr.inputs.Textbox(lines=2, label='Ask ClimateApp any questions about climate-related applications!', placeholder="Type your question here...") | |
| my_output = gr.outputs.Textbox(label="ECOWATCH AI's Response") | |
| api_input = gr.inputs.Textbox(label="Enter your OpenAI API token:", placeholder="Insert your API token here...") | |
| demo = gr.Interface( | |
| fn=chatbot_with_submit, | |
| inputs=[my_input, api_input], | |
| outputs=my_output, | |
| title="ECOWATCH AI -GPT", | |
| description='''Disclaimer: Please consult climate experts for critical matters. Our forecasts may occasionally be inaccurate.''' | |
| ) | |
| # Share the link | |
| demo.launch(share=False) |