Beiträge von Kaliber
-
-
Gäbe es doch nur eine Möglichkeit das Internet danach zu befragen.
Ja, so eine Art künstlicher Mensch, der einem das durchsucht. Vielleicht könnte man das künstliche Intelligenz nennen.
Und dann kann man damit Chatten und er gibt einem Antworten...wenn das doch nur möglich wäre 😪
Achwas, ich frage lieber in einem toten Forum, da hat bestimmt einer Zeit und Lust Webseiten zu durchsuchen.....
Zitat von ChatGPT📸 Lizenzfreie Bilddatenbanken
-
Shutterstock
-
Bietet eine umfangreiche Sammlung von Bildern des TOGG T10X, einschließlich Fotos, Vektorgrafiken und Illustrationen.
-
Die Bilder sind lizenzfrei und können für kommerzielle Zwecke genutzt werden. Shutterstock
-
-
iStock
-
Verfügt über hochwertige Fotos des TOGG TX10, die für kommerzielle Nutzung lizenziert werden können.
-
Beispiel: Togg TX10 – Stockfoto - Elektro-Fahrzeug, Auto, Schiebedach. iStockPhoto.com
-
-
Pexels
-
Bietet kostenlose, hochauflösende Bilder des TOGG, die ohne Lizenzgebühren für kommerzielle Zwecke verwendet werden können.
-
Beispiel: Free Togg Photos. Pexels
-
-
Dreamstime
-
Enthält eine Sammlung von lizenzfreien Fotos des TOGG, die für kommerzielle Designs genutzt werden können.
-
Beispiel: Togg Stock Photos - Free & Royalty. Dreamstime
-
🖼️ Weitere Quellen
-
Alamy
-
Bietet sowohl lizenzfreie als auch lizenzpflichtige Bilder des TOGG an.
-
Beispiel: Togg car Stock Photos and Images. Alamy
-
-
Peakpx
-
Stellt HD-Wallpapers des TOGG zur Verfügung, die für kommerzielle Zwecke genutzt werden können.
-
Beispiel: HD togg car wallpapers. Peakpx
-
⚠️ Hinweise zur Nutzung
-
Lizenzbedingungen prüfen: Stellen Sie sicher, dass die ausgewählten Bilder die erforderlichen Lizenzrechte für Ihre spezifische Nutzung (z. B. Werbung, Druck, Online-Veröffentlichung) besitzen.
-
Bildnachweise: Auch bei lizenzfreien Bildern kann es erforderlich sein, den Urheber oder die Quelle anzugeben. Prüfen Sie die jeweiligen Lizenzbedingungen.
-
Verwendung von Logos: Die Nutzung von Markenlogos (z. B. das TOGG-Logo) unterliegt speziellen Markenrechten. Stellen Sie sicher, dass Sie die entsprechenden Rechte oder Genehmigungen besitzen, bevor Sie solche Logos verwenden.
-
-
Was vielleicht noch eine tolle Ergänzung wäre: Du schmeißt einfach gleich das ganze pwn Script rein, er ignoriert alles aus pwn und liest die Kommentare zu den Befehlen.
Oder bin ich jetzt falsch nummeriert?
Mit Hilfe von LLMs kann man sowas ja easy machen, damit die Daten am Ende schön clean sind.
Geht wie beschrieben, nicht zwingend nur um Befehle, sondern auch Erklärungen o.ä.
-
-
Ja mir geht es prächtig, und dir?
Ja, auch alles in Butter 😄
Verstehe ich, das geht mir auch manchmal so.
Ist hier ja leider sehr ruhig geworden...
Ja, in der Tat 😅
-
Ach, war nur Quatsch, hatte mich geirrt. Dachte in dem Video hier
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.Aber willkommen zurück, selten dich hier zu sehen. Freut mich, dass es dir gut geht 😁 Was treibt dich wieder zu den Toten? ⚰️
-
Hallo meine lieben Brotfische,
lange ist es her.
Neulich war ich auf einem Server, die hatten kein Tutorial und keine Erklärungen.
Dann hat man sich selbst durch die Menüs gekämpft, nur um dann Befehle zu finden, wo es hieß, den kannst du ohne xyz nicht nutzen. Findest du am Schwarzmarkt.
Glaubt ihr, ich habe diesen Schwarzmarkt gefunden? -Nein
Gab es ein Navi? -Nein
Wusste irgendwer wo das war? -Nein
Das fand ich sehr nervig.
Und wie cool wäre es, wenn jeder Server einen AI-Assistenten völlig kostenlos und ohne GPU hätte?
Da will ich euch heute mal einen Ansatz vorstellen.
Vielleicht noch kurz zur Erklärung, wieso ich kein LLM nutzen mag. Natürlich wäre der Output dann besser, allerdings ist es dann auch massiv langsamer, teurer, aufwändiger und anfälliger für falsche Infos (Stichwort Halluzination).
Die Theorie
Die Grundidee nennt sich Word2Vector.
Aber um es zu vereinfachen, jedem Wort ordnen wir quasi eine Zahl zu. Und je ähnlicher die Wörter sind, desto ähnlicher die Zahlen. Zum Beispiel Mann (3) und Frau (4). Aber Mann (3) und Apfel (50). Hier sehen wir, dass die Wörter kontextuell sehr unterschiedlich sind. Es gibt sog. Embedding Modelle, die übernehmen genau diese Aufgabe für uns. Sie wurden auf riesige Textmengen trainiert und können gekonnt den Wörtern entsprechende Zahlen zuweisen.
Nun haben wir eine Textdatei, z.B.
Code/duty = Damit können Sie OnDuty gehen. (Wert: 5) /open = Damit können jegliche Art von Tor/Schranke geöffnet werden. (Alternativ auch H im Auto drücken) (Wert: 90) /su = Um einem Spieler Wanteds zu geben. (Wert: 20)
Wenn wir jetzt eine Frage stellen, zum Beispiel: Wie gebe ich jmd Wanteds? Dann kommt auch hier unser Embedding Modell und gibt dem Satz einen Wert, in unserem Fall wäre das 18. Und jetzt gehen wir einfach alle Möglichkeiten durch und finden, dass wir wohl nach dem /su Befehl suchen, da er dem Spieler Wanteds gibt und geben ihm diese Zeile aus.
Implementierung
Die Implementierung ist in python sehr einfach. Wieso python? Weil das der einfachste und gängigste Weg für "Machine Learning" ist. Hier gibt es viele optimierte Bibliotheken, die unter der Haube C++/Rust nutzen und so sehr performant sind.
Die Idee ist nun sehr einfach, wir setzen in python einen lokalen Web-Server (der auf der selben Maschine läuft wie unser Gameserver, aber nicht von extern erreichbar ist) auf.
Dann führen wir von unserem Gameserver (egal ob GTA SA/GTA 5/MTA oder Arc oder sonstiges Game) einfach einen HTTP Request aus.
Gameserver -> ruft per HTTP Anfrage + Frage unseren Server auf -> Der Server nutzt Word2Vec und gleicht das mit der DB ab -> gibt das Ergebnis wieder.
Wenn man wirklich große Infos/Daten hat, dann sollte man hier eine Datenbank, wie Chroma o.ä. verwenden und nicht nur eine Textdatei, da sonst ggfs viel RAM gefressen wird.
Aber für die "normale" Nutzung sollte das erstmal kein Problem sein.
Code: main.py
Alles anzeigenfrom sentence_transformers import SentenceTransformer, util from flask import Flask, request with open("data.txt", "r", encoding="utf-8") as f: data = [line.strip() for line in f if line] model = SentenceTransformer("distiluse-base-multilingual-cased-v2", cache_folder="brain") # Gutes Embedding-Modell vor Allem für Deutsch! :) data_embedding = model.encode(data, convert_to_tensor=True) def find_top_line(query): global model, data_embedding, data query_embedding = model.encode(query, convert_to_tensor=True) scores = util.cos_sim(query_embedding, data_embedding)[0] idx = scores.argmax().item() return "Keine Ergebnisse in der Datenbank gefunden :(" if scores[idx] < 0.15 else data[idx] app = Flask(__name__) @app.route('/ai', methods=['GET', 'POST']) def handle_ai(): question = request.form.get("text") or request.args.get("text") or "" question = question.strip() response_text = find_top_line(question) if question else "" response_bytes = response_text.encode("cp1252", errors="replace") return response_bytes, 200, {"Content-Type": "text/plain; charset=windows-1252"} if __name__ == '__main__': app.run(host="127.0.0.1", port=1337)
Zuerst die Abhängigkeiten installieren:
pip install sentence-transformers flask
Und anschließend kann das Skript einfach mit python main.py.
PS: Bei Linux heißt es pip3 oder python3. Hier natürlich mit nohup o.ä. arbeiten.
Unsere data.txt sieht einfach so z.B. aus:
Code: data.txt
Alles anzeigen/switchcolor = Um Ihre Autofarbe anzupassen. /members = Zeigt die Member an, die online sind. /duty = Damit können Sie OnDuty gehen. /open = Damit können jegliche Art von Tor/Schranke geöffnet werden. (Alternativ auch H im Auto drücken) /r = Damit schreiben Sie Ihren Team-Kollegen. /d = Damit können Sie allen Staatsfraktionen schreiben. /gov = Damit können Sie Regierungsnachrichten an den Server senden. /m = Steht für Megaphone, damit können Sie einen Text aus einem Polizei Auto schreien. /su = Um einem Spieler Wanteds zu geben. /cuff = Fesselt einen Spieler. /uncuff = Entfesselt einen Spieler. /arrest = Sperrt einen Verbrecher ein. /frisk = Durchsucht einen Spieler nach illegalen Items. /take = Damit kannst du einem Spieler illegale Items abnehmen. /Bluttest = Um Drogen- oder Alkoholtest durchzuführen. /orten = Damit können Sie einen Spieler suchen. /hide = Damit entfernen Sie einen Marker. /rb = Das steht für RoadBlock und erstellt eine Straßensperre. Um zum Schwarzmarkt zu gelangen "/find blackmarket".
Also unser Algorithmus sucht in jeder Zeile, nach der entsprechenden Antwort von unserer Frage.
Dort müssen nicht nur Befehle drinnen stehen, sondern es können auch Erklärungen/Texte o.ä. reinpassen. Wichtig ist nur, dass es in einer Zeile steht.
Man kann das System beliebig erweitern, wie vllt eine Datei nur für Befehle, die Andere für Erklärungen und dann gibt es mehrere cmds, wie /ai_cmds und /ai_explain...o.ä.
In Pawn (hehe, good old SA:MP) sieht es dann z.B. so aus:
C: ai.pwn
Alles anzeigen#include <open.mp> #include <makro> #include <cmd> #include <strlib> CMD:ai(playerid, params[]) { if(GetPVarType(playerid,"ai") != PLAYER_VARTYPE_NONE) return 0; // um (D)DOS zu unterbinden SetPVarInt(playerid, "ai", 1); new out[256]; strurldecode(out, params); new string[256]; format(string,sizeof(string),"text=%s",out); HTTP(playerid, HTTP_POST, "http://127.0.0.1:1337/ai", string, "OnHttpResponse"); return 1; } forward OnHttpResponse(index, response_code, data[]); public OnHttpResponse(index, response_code, data[]) { new playerid = index; new buffer[128]; static const prefix[] = "* [AI]: "; new len = strlen(data); new i = 0; while (i < len) // so kompliziert, da in SAMP nur 128 Zeichen in eine Zeile passen. Somit loopen wir hier durch den Output, bis alles ausgegeben wurde in jeder Zeile. Würden wir alles in eine Zeile schreiben, würde es leider abgeschnitten werden. { new chunkSize = ((i+chunkSize-1) > (len-1)) ? (len - i) : (sizeof(buffer) - 1); if (i == 0) { chunkSize -= strlen(prefix); // leave space for prefix strmid(buffer, data, i, i + chunkSize - 1); strins(buffer, prefix, 0, sizeof(buffer)); } else { strmid(buffer, data, i, i + chunkSize - 1); } SendClientMessage(playerid, 0xFF8000FF, buffer); i += chunkSize; } DeletePVar(playerid, "ai"); return 1; }
InGame sieht das dann so aus:
FAQ
- Ja, das läuft auf Linux oder Windows.
- Nein, man brauch keine GPU.
- Der Python-Web-Server soll nur lokal verfügbar sein! (Auch aus Sicherheitsgründen!)
- Eine Anfrage braucht ungefähr ~35ms
- Wichtig ist URLEncode zu nutzen bei der HTTP Anfrage!
- Wenn man Quatsch eingibt, bekommt man Quatsch zurück oder eben, dass nichts in der DB gefunden wurde.
- Wieso kein LLM? Wurde oben erklärt.
- Werden meine Änderungen sofort übernommen, wenn ich sie in der data.txt ergänze? Nein, da das unnötig wäre immer on the fly für alle Zeilen den Vektor zu berechnen. Man muss dann kurz alles Neustarten. Aber das sollte ja auch in 5 Sekunden erledigt sein. Alternativ kann man hier ansetzen eine Schnittstelle noch zu implementieren, die den Datenvektor erweitert bzw das direkt in einer .db ablegt. Dafür eignet sich chroma gut.
Bei Fragen wendet euch gerne an ChatGPT und wenn der nicht weiterkommt, dann gerne an mich
Hoffe es inspiriert vielleicht den Ein oder Anderen hier im Forum sowas zu implementieren, fände ich mega stark!
In diesem Sinn, bei Anregungen, gerne einen Kommentar, falls euch der Beitrag gefallen hat, gerne einen Daumen nach oben
-
-
-
Haben sie bereits von diesem Google oder ChatGPT gehört? 😅
Da findet man vllt schneller Hilfe, als in einem toten Forum
Aber kurz als Teaser, es gibt Remote SSH als extension
-
Rotes Silikon ist bzw wird im Sanitär Bereich angewendet
Ja, ich weiß was du meinst, aber technisch gesehen, ist das Silikon nicht rot, sondern die Farbpigmente, die da beigemischt wurden.
Was ja schon ein riesen Unterschied ist.
Denn das bedeutet, ich kann zu 100% das Silikon aus dieser Paste extrahieren und auf der einen Seite habe ich dann eine milchig/weiße Paste und rechts nur rot...
Silikon selbst ist nämlich nur milchig/farblos.
damit nicht irgendwelche Spekulation oder Unterstellungen auftauchen die nicht mal stimmen.
oooder du erklärst es uns, und stellst es klar. Was auch eigentlich nur fair wäre. Oder willst du uns dumm sterben lassen? 🥺
-
Es war Silikon
Wo ist Silikon Gasförmig im Einsatz?
Wo ist das Rot?
Wo bläht es sich auf beim Eintauchen? Das ist maximal hydrophob...
-
meine farbe ist rot, bin flüssig,gasförmig und auch mal etwas schmierig.
man kann mich flexiebel verwenden.
wenn man mich eintunkt bläh ich mich etwas auf dennoch verwendbar.
sobald man mich ausdrückt bin ich sehr flach.Wer oder Was bin ich?
Ihr liegt alle falsch, denn ein Schwamm kann ja nicht gasförmig sein.
Es ist somit das Element Brom:
Farbe: Brom ist rotbraun in flüssigem Zustand – oft einfach als "rot" beschrieben.
Aggregatzustände:
-
Bei Raumtemperatur: flüssig
-
Es verdampft leicht → gasförmig (rote Dämpfe)
-
Es ist ätzend, schleimig, ölig in der Konsistenz, also "schmierig"
Verwendung:
Bromverbindungen sind vielfältig einsetzbar, z. B. in Flammschutzmitteln, Arzneimitteln, Fotografie, Farbstoffen.
Aufblähen beim Eintauchen:
In Verbindung mit bestimmten Materialien oder als Dampf in Reaktionen, vergrößert sich das Volumen..
"Ausdrücken = flach":
Im übertragenen Sinn: Wenn man es aus einem System entfernt (z. B. abdampft), bleibt nichts voluminöses zurück.
-
-
Die erste Frage: Ist es mit der LT Version wirklich möglich, diesen immer wiederkehrenden Schritt zu automatisieren? Wenn ja, wie?
Also nur mit Autodesk LT wird das nichts werden denke ich.
Aber du kannst dir den ODA Converter holen: https://www.opendesign.com/guestfiles/oda_file_converter
Dadurch kannst du aus dem DWG eine DXF machen.
Und diese ist easy z.B. mit python/JS/C# o.ä. bearbeitbar und dadurch kannst du es automatisieren.
-
Mir schon klar, dass das nicht überall so ist...aber bei denen hier ist es mir aufgefallen:
- three.js
- Unity
- Godot
- Babylon.js
Ich wollte lediglich anmerken, dass ich es dumm finde, dass das nicht überall einheitlich ist 😅
-
-
Gibt es hier eigentlich noch das System von Mittelsmännern noch? Damals zu Kindzeiten einmal benutzt, dann laaaaaaaaaange hier in Inaktivität verfallen.
Nein. Aber wenn du Leute privat anschreibst, gibt sicher Leute, die dir helfen.
-
-
Was passiert dann?
Hast du die neuste OMP Version?
Gib mal den Wert aus, kommt dann der richtige Wert heraus?
Gibt es Hooks von GetPlayerHealth ggfs Anti-Cheat?
Crashdetect mal ausprobieren...
-