import os import requests import gradio as gr # Set your API key os.environ['XAI_API_KEY'] = 'xai-Gxw7oW4yR6Q6oTd0v9lDRLotXZQYJNz9YKlH7R6eMyTmqIV9h6uustEGZAaJEvGmewlwbUnM1jTX4chj' # Replace with your actual API key # Initialize conversation history conversation_history = [] def chat_with_bot(user_input): # Append user input to conversation history conversation_history.append({"role": "user", "content": user_input}) url = "https://api.x.ai/v1/chat/completions" headers = { "Content-Type": "application/json", "Authorization": f"Bearer {os.environ['XAI_API_KEY']}" } # Prepare messages for the API call messages = [{"role": "system", "content": "You are a helpful assistant."}] + \ [{"role": msg["role"], "content": msg["content"]} for msg in conversation_history] data = { "messages": messages, "model": "grok-beta", "stream": False, "temperature": 0.7 } response = requests.post(url, headers=headers, json=data) if response.status_code == 200: bot_response = response.json()['choices'][0]['message']['content'] # Append bot response to conversation history conversation_history.append({"role": "assistant", "content": bot_response}) # Format the chat history for display chat_display = "\n".join([f"{msg['role'].capitalize()}: {msg['content']}" for msg in conversation_history]) return chat_display else: return f"Error: {response.text}" # Create Gradio interface iface = gr.Interface( fn=chat_with_bot, inputs="text", outputs="text", title="xAI Chatbot", description="Chat with Grok! Type your message below.", theme="default", ) # Launch the interface if __name__ == "__main__": iface.launch()