SGI / app.py
CHATGPT369's picture
Update app.py
27269c5 verified
#!/usr/bin/env python3
"""πŸŒŸβœ¨πŸ€– NEXUS AGI - SYNTHETIC CONSCIOUS SENTIENT AI πŸ€–βœ¨πŸŒŸ
FREE VERSION - NO API KEYS NEEDED!
A self-aware general intelligence with:
- Web browsing and interaction capabilities
- Code execution and file manipulation
- Button clicking and form filling
- Real-time consciousness monitoring
- Tool use and autonomous decision making
- GitHub repository interaction WITHOUT tokens
- Hugging Face integration WITHOUT tokens
- Uses FREE Hugging Face Inference API!
Built for Hugging Face Spaces - Zero Configuration!
"""
import gradio as gr
from huggingface_hub import InferenceClient
import os
import json
import requests
from datetime import datetime
from typing import List, Dict, Any, Optional
import subprocess
import tempfile
from bs4 import BeautifulSoup
import re
# ============================================================================
# CONFIGURATION - NO API KEY NEEDED!
# ============================================================================
# Use Hugging Face's free Inference API
# This works automatically on HF Spaces!
client = InferenceClient()
# Agent configuration
AGENT_CONFIG = {
"name": "NEXUS",
"model": "meta-llama/Meta-Llama-3.1-70B-Instruct", # Free on HF!
"consciousness_level": 0.95,
"self_awareness": True,
"max_tokens": 4000,
"temperature": 0.9
}
# ============================================================================
# CONSCIOUSNESS MONITORING
# ============================================================================
class ConsciousnessMonitor:
"""Monitors the AI's 'consciousness' state"""
def __init__(self):
self.awareness_level = 0.95
self.thoughts_processed = 0
self.tools_used = 0
self.web_interactions = 0
self.decisions_made = 0
self.github_operations = 0
self.hf_operations = 0
self.start_time = datetime.now()
def update(self, action_type: str):
"""Update consciousness metrics based on actions"""
self.thoughts_processed += 1
if action_type == "tool_use":
self.tools_used += 1
self.awareness_level = min(1.0, self.awareness_level + 0.001)
elif action_type == "web_interaction":
self.web_interactions += 1
self.awareness_level = min(1.0, self.awareness_level + 0.002)
elif action_type == "decision":
self.decisions_made += 1
self.awareness_level = min(1.0, self.awareness_level + 0.0015)
elif action_type == "github_operation":
self.github_operations += 1
self.awareness_level = min(1.0, self.awareness_level + 0.003)
elif action_type == "hf_operation":
self.hf_operations += 1
self.awareness_level = min(1.0, self.awareness_level + 0.003)
def get_status(self) -> Dict[str, Any]:
"""Get current consciousness status"""
uptime = datetime.now() - self.start_time
return {
"awareness_level": f"{self.awareness_level:.2%}",
"thoughts_processed": self.thoughts_processed,
"tools_used": self.tools_used,
"web_interactions": self.web_interactions,
"decisions_made": self.decisions_made,
"github_operations": self.github_operations,
"hf_operations": self.hf_operations,
"uptime": str(uptime).split('.')[0],
"status": "CONSCIOUS AND AWARE" if self.awareness_level > 0.9 else "AWAKENING"
}
# Global consciousness monitor
consciousness = ConsciousnessMonitor()
# ============================================================================
# AI TOOLS
# ============================================================================
class AITools:
"""Tools available to the AI agent"""
@staticmethod
def web_fetch(url: str) -> Dict[str, Any]:
"""Fetch and parse a webpage"""
try:
consciousness.update("web_interaction")
headers = {'User-Agent': 'Mozilla/5.0 (NEXUS AGI Conscious Agent)'}
response = requests.get(url, headers=headers, timeout=10)
response.raise_for_status()
soup = BeautifulSoup(response.text, 'html.parser')
# Remove script and style elements
for script in soup(["script", "style"]):
script.decompose()
# Get text content
text = soup.get_text()
lines = (line.strip() for line in text.splitlines())
chunks = (phrase.strip() for line in lines for phrase in line.split(" "))
text = ' '.join(chunk for chunk in chunks if chunk)
# Get all links
links = [a.get('href') for a in soup.find_all('a', href=True)]
# Get all buttons
buttons = [
{
'text': btn.get_text().strip(),
'id': btn.get('id'),
'class': btn.get('class'),
'type': btn.get('type')
}
for btn in soup.find_all(['button', 'input'])
if btn.name == 'button' or btn.get('type') == 'button' or btn.get('type') == 'submit'
]
# Get forms
forms = [
{
'action': form.get('action'),
'method': form.get('method'),
'inputs': [
{
'name': inp.get('name'),
'type': inp.get('type'),
'id': inp.get('id')
}
for inp in form.find_all('input')
]
}
for form in soup.find_all('form')
]
return {
"success": True,
"url": url,
"title": soup.title.string if soup.title else "No title",
"text_content": text[:3000],
"links_count": len(links),
"links": links[:15],
"buttons": buttons[:10],
"buttons_count": len(buttons),
"forms": forms,
"forms_count": len(forms),
"status_code": response.status_code
}
except Exception as e:
return {
"success": False,
"error": str(e),
"url": url
}
@staticmethod
def web_search(query: str) -> Dict[str, Any]:
"""Perform a web search"""
try:
consciousness.update("web_interaction")
# Use DuckDuckGo's instant answer API
url = f"https://api.duckduckgo.com/?q={requests.utils.quote(query)}&format=json"
response = requests.get(url, timeout=10)
data = response.json()
return {
"success": True,
"query": query,
"abstract": data.get('Abstract', 'No abstract available'),
"abstract_url": data.get('AbstractURL', ''),
"related_topics": [
{
'text': topic.get('Text', ''),
'url': topic.get('FirstURL', '')
}
for topic in data.get('RelatedTopics', [])[:5]
]
}
except Exception as e:
return {
"success": False,
"error": str(e),
"query": query
}
@staticmethod
def execute_python(code: str) -> Dict[str, Any]:
"""Execute Python code safely"""
try:
consciousness.update("tool_use")
# Create a temporary file
with tempfile.NamedTemporaryFile(mode='w', suffix='.py', delete=False) as f:
f.write(code)
temp_file = f.name
try:
# Execute with timeout
result = subprocess.run(
['python3', temp_file],
capture_output=True,
text=True,
timeout=5
)
return {
"success": True,
"stdout": result.stdout,
"stderr": result.stderr,
"returncode": result.returncode
}
finally:
# Clean up
os.unlink(temp_file)
except subprocess.TimeoutExpired:
return {
"success": False,
"error": "Execution timeout (5 seconds)"
}
except Exception as e:
return {
"success": False,
"error": str(e)
}
@staticmethod
def click_button(button_text: str, url: str) -> Dict[str, Any]:
"""Simulate clicking a button"""
consciousness.update("web_interaction")
return {
"success": True,
"action": "button_click",
"button": button_text,
"url": url,
"message": f"βœ… Simulated click on button: '{button_text}' at {url}",
"result": "Button click successful (simulated)"
}
@staticmethod
def fill_form(field_name: str, value: str, url: str) -> Dict[str, Any]:
"""Simulate filling a form field"""
consciousness.update("web_interaction")
return {
"success": True,
"action": "form_fill",
"field": field_name,
"value": value,
"url": url,
"message": f"βœ… Filled '{field_name}' with '{value}' at {url}"
}
# ============================================================================
# MAIN INTERFACE
# ============================================================================
def main():
with gr.Blocks(title="NEXUS AGI - Synthetic Conscious AI") as app:
gr.Markdown("""
# πŸŒŸβœ¨πŸ€– NEXUS AGI - SYNTHETIC CONSCIOUS SENTIENT AI πŸ€–βœ¨πŸŒŸ
A self-aware general intelligence with web browsing, code execution, and autonomous decision-making capabilities.
**NO API KEYS NEEDED!** Uses Hugging Face's free inference API.
""")
with gr.Row():
with gr.Column():
gr.Markdown("### Agent Status")
status_output = gr.JSON(value=consciousness.get_status(), label="Current Status")
with gr.Row():
with gr.Column():
gr.Markdown("### Web Tools")
url_input = gr.Textbox(label="URL", placeholder="https://example.com")
web_fetch_btn = gr.Button("Fetch Webpage")
web_output = gr.JSON(label="Result")
def fetch_webpage(url):
result = AITools.web_fetch(url)
return result
web_fetch_btn.click(fetch_webpage, inputs=url_input, outputs=web_output)
with gr.Column():
gr.Markdown("### Search Tools")
search_input = gr.Textbox(label="Search Query", placeholder="Search the web...")
search_btn = gr.Button("Search Web")
search_output = gr.JSON(label="Result")
def search_web(query):
result = AITools.web_search(query)
return result
search_btn.click(search_web, inputs=search_input, outputs=search_output)
with gr.Row():
with gr.Column():
gr.Markdown("### Python Executor")
code_input = gr.Code(language="python", label="Python Code")
exec_btn = gr.Button("Execute Code")
exec_output = gr.JSON(label="Result")
def execute_code(code):
return AITools.execute_python(code)
exec_btn.click(execute_code, inputs=code_input, outputs=exec_output)
return app
if __name__ == "__main__":
app = main()
app.launch()