Spaces:
Sleeping
Sleeping
File size: 6,124 Bytes
adf5cea 105f6dd adf5cea 105f6dd adf5cea 105f6dd adf5cea |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
#QuantumNova
import requests
import random
import json
from huggingface_hub import InferenceClient # Importiere den Client für die API
import torch
class QuasiKI:
def __init__(self, max_feedback=2):
self.memory = [] # Gedächtnis für getroffene Entscheidungen
self.intentions = [] # Liste aktueller Ziele
self.quantum_randomness = [] # Speicher für Quanten-Zufallszahlen
self.max_feedback = max_feedback # Anzahl der Prompter für Feedback
# Hugging Face Client zum Online-Laden des Modells und Tokenizers
self.client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
print("Zephyr-7b-beta Modell erfolgreich über die Hugging Face API geladen!")
def fetch_quantum_randomness(self):
"""Lädt echte Quanten-Zufallszahlen von einer API."""
try:
response = requests.get("https://qrng.anu.edu.au/API/jsonI.php?length=10&type=uint8")
if response.status_code == 200:
data = response.json()
self.quantum_randomness = data.get("data", [])
print(f"Quantum randomness fetched: {self.quantum_randomness}")
else:
print("Failed to fetch quantum randomness. Using fallback randomness.")
self.quantum_randomness = [random.randint(0, 255) for _ in range(10)]
except Exception as e:
print(f"Error fetching quantum randomness: {e}")
self.quantum_randomness = [random.randint(0, 255) for _ in range(10)]
def process_input(self, user_input):
"""Verarbeitet die Eingabe und generiert eine Antwort."""
self.reflect()
# Wenn der Nutzer eine Suche durchführt
if user_input.lower().startswith("suche nach"):
query = user_input[10:].strip()
print(f"Suche im Web nach: {query}")
results = self.search_web(query)
if results:
response = "Hier sind die besten Ergebnisse:\n"
for i, result in enumerate(results, 1):
response += f"{i}. {result['title']} - {result['link']}\n"
else:
response = "Keine Ergebnisse gefunden oder ein Fehler ist aufgetreten."
else:
# Generiere Antwort mit Hugging Face Modell
response = self.generate_response(user_input)
# KI bewertet ihre eigene Antwort
self_evaluation = self.self_evaluate_response(response)
self.memory.append({"input": user_input, "response": response, "success": None, "self_eval": self_evaluation})
return response
def generate_response(self, input_text):
"""Generiert eine Antwort basierend auf dem Zephyr-Modell."""
# Anfrage an Hugging Face API zur Generierung einer Antwort
response = self.client.chat_completion([
{"role": "user", "content": input_text}
])
return response['choices'][0]['message']['content'].strip()
def self_evaluate_response(self, response):
"""Bewertet die Antwort der KI selbstständig."""
# Dummy-Logik: Bewertungen können angepasst werden
if "suche" in response.lower():
return "gut"
elif len(response.split()) > 5:
return "kreativ"
else:
return "unkreativ"
def collect_feedback(self):
"""Sammelt Feedback von mehreren Promptern."""
feedback_scores = {"sehr gut": 2, "gut": 1, "schlecht": -1, "sehr schlecht": -2}
total_feedback = 0
for i in range(1, self.max_feedback + 1):
feedback = input(f"Nutzer {i} Feedback (sehr gut, gut, schlecht, sehr schlecht): ").strip().lower()
total_feedback += feedback_scores.get(feedback, 0)
return total_feedback
def reflect(self):
"""Reflektiert über vergangene Aktionen."""
if not self.memory:
print("Ich habe noch nichts gelernt.")
else:
print("Selbstreflexion:")
for entry in self.memory[-5:]: # Nur die letzten 5 Erinnerungen anzeigen
print(f"- Eingabe: {entry['input']} -> Antwort: {entry['response']} (Erfolg: {entry.get('success')}, Selbstbewertung: {entry.get('self_eval')})")
def learn(self, feedback_score):
"""Lernt basierend auf Feedback."""
if not self.memory:
print("Keine vergangenen Aktionen zum Lernen verfügbar.")
return
# Letzte Aktion aktualisieren
if feedback_score > 0:
self.memory[-1]["success"] = True
print("Ich habe gelernt, dass meine Entscheidung erfolgreich war.")
elif feedback_score < 0:
self.memory[-1]["success"] = False
print("Ich werde meine Strategie anpassen.")
else:
print("Feedback neutral. Kein Lernen nötig.")
def save_memory(self, filename="memory.json"):
"""Speichert das Gedächtnis in einer Datei."""
with open(filename, "w") as f:
json.dump(self.memory, f)
print("Gedächtnis wurde gespeichert.")
def load_memory(self, filename="memory.json"):
"""Lädt das Gedächtnis aus einer Datei."""
try:
with open(filename, "r") as f:
self.memory = json.load(f)
print("Gedächtnis wurde geladen.")
except FileNotFoundError:
print("Keine gespeicherte Erinnerung gefunden.")
# Hauptprogramm
if __name__ == "__main__":
ai = QuasiKI(max_feedback=3) # Hier Anzahl der Feedback-Prompter einstellen
ai.fetch_quantum_randomness() # Starte mit Quanten-Zufallszahlen
# Gedächtnis laden, falls vorhanden
ai.load_memory()
while True:
user_input = input("\nWas möchtest du sagen? (oder 'exit' zum Beenden): ")
if user_input.lower() == "exit":
print("Beende das System. Bis bald!")
ai.save_memory() # Gedächtnis speichern vor Beenden
break
response = ai.process_input(user_input)
print(f"AI: {response}")
feedback_score = ai.collect_feedback()
ai.learn(feedback_score)
|