Sie werden den Rausch der Aufregung rund um ChatGPT (Chat Generative-Pre-Trained Transformer) nicht verpasst haben. Es kann Bilder erstellen, Codes, Lieder und Gedichte schreiben und versuchen, unsere Probleme zu lösen, ob groß oder klein. Es weiß vielleicht nicht, wie es die Kobayashi-Maru-Simulation von Star Trek schlagen soll, aber es kann mit Leichtigkeit Python- und Bash-Code schreiben. Auf Knopfdruck kann es auch zum Schreiben verwendet werden G-Code für die Die besten 3D-Drucker obwohl wir es noch an unserem ausprobieren müssen Creality Ender 2 Pro.
Normalerweise interagieren wir mit ChatGPT über den Browser, aber in dieser Anleitung verwenden wir eine spezielle Python-Bibliothek, die unsere bescheidenen Benutzer verbindet Himbeer-Pi an die leistungsstarke KI und stellen uns ein Tool zur Verfügung, mit dem wir fast jede Frage beantworten können. Dieses Projekt ist nicht exklusiv für Raspberry Pi; Es kann auch mit Windows-, MacOS- und Linux-PCs verwendet werden. Wenn Sie Python darauf ausführen können, wird dieses Projekt wahrscheinlich auch funktionieren.
Wenn Sie einen Raspberry Pi verwenden, können Sie mit diesem Projekt fast jedes Modell verwenden, da wir Anfragen einfach über eine Internetverbindung stellen. Für die insgesamt reibungsloseste Leistung empfehlen wir jedoch a Raspberry Pi 4 oder Raspberry Pi 3B+.
Einrichten des ChatGPT-API-Schlüssels für Raspberry Pi
Bevor wir ChatGPT mit unserem Raspberry Pi und Python verwenden können, müssen wir zuerst einen API-Schlüssel einrichten. Dieser Schlüssel ermöglicht es unserem Code, sich mit unserem OpenAI-Konto zu verbinden und KI zu verwenden, um Anfragen zu beantworten, Code zu schreiben, Gedichte zu schreiben oder den nächsten Hit zu erstellen.
1. Melden Sie sich bei Ihrem OpenAI-Konto an.
2. Klicken Sie auf das Menü und wählen Sie aus API-Schlüssel anzeigen.
3. Klicken Sie auf Neuen geheimen Schlüssel erstellen, um einen API-Schlüssel zu generieren. Stellen Sie sicher, dass Sie diesen Schlüssel kopieren und an einem sicheren Ort einfügen, er wird nicht erneut angezeigt. Teilen Sie niemals Ihre API-Schlüssel, sie sind einzigartig für Ihr Konto, alle anfallenden Kosten werden von Ihrem Konto übernommen.
Installieren der ChatGPT-Python-API auf Raspberry Pi
Mit unserem API-Schlüssel in der Hand können wir nun unseren Raspberry Pi und insbesondere Python so konfigurieren, dass die API über die openAI-Python-Bibliothek verwendet wird.
1. Öffnen Sie ein Terminal und aktualisieren Sie die Software auf Ihrem Raspberry Pi. Dieser Befehl ist zweifach. Zuerst führt es ein Update aus und überprüft, ob die Liste der Software-Repositories auf unserem Pi auf dem neuesten Stand ist. Wenn nicht, werden die neuesten Details heruntergeladen. Das „&&“ bedeutet, dass, wenn der erste Befehl (Update) sauber ausgeführt wird, der zweite Befehl, mit dem wir die Software aktualisieren, beginnt. Das Flag „-y“ wird verwendet, um die Installation ohne Benutzereingabe zu akzeptieren.
sudo apt update && sudo apt upgrade -y
2. Installieren Sie die Openai-Python-Bibliothek mit dem Pip-Paketmanager.
pip3 install openai
3. Öffnen Sie die in Ihrem Home-Verzeichnis versteckte bashrc-Datei. In dieser Datei müssen wir einen Pfad festlegen, einen Ort, an dem Raspberry Pi OS und Python nach ausführbaren / Konfigurationsdateien suchen können.
nano ~/.bashrc
4. Scrollen Sie mit der Tastatur zum Ende der Datei und fügen Sie diese Zeile hinzu.
export PATH="$HOME/.local/bin:$PATH"
5. Speichern Sie die Datei, indem Sie STRG + X, dann Y und die Eingabetaste drücken.
6. Laden Sie die bashrc-Konfiguration neu, um die Konfiguration abzuschließen. Schließen Sie dann das Terminal.
source ~/.bashrc
Erstellen eines ChatGPT-Chatbots für Raspberry Pi
Das Ziel unseres Chatbots ist es, auf vom Benutzer gestellte Fragen zu antworten. Solange die Antwort im Textformat vorliegen kann, funktioniert dieser Projektcode. Wenn der Benutzer fertig ist, kann er ein Wort zum Beenden eingeben oder STRG+C drücken, um den Code zu stoppen. Wir haben es mit Fakten und Trivia-Fragen getestet und es dann gebeten, Python-Code, Bash und ein wenig G-Code für einen 3D-Drucker zu schreiben.
1. Starte Thonnyein integrierter Python-Editor. Sie finden es im Menü des Raspberry Pi unter Programmierung >> Thonny.
2. Importieren Sie die Openai-Bibliothek. Dadurch kann unser Python-Code online gehen und mit GPT chatten.
import openai
3. Erstellen Sie ein Objekt, model_engine, und speichern Sie dort Ihr bevorzugtes Modell. davinci-003 ist am leistungsfähigsten, aber wir können auch (in der Reihenfolge der Fähigkeiten) „text-curie-001“, „text-babbage-001“ und „text-ada-001“ verwenden. Das Ada-Modell hat die niedrigsten Token-Kosten.
model_engine = "text-davinci-003"
4. Erstellen Sie ein Objekt, open.api_key und speichern Sie Ihren API-Schlüssel. Fügen Sie Ihren API-Schlüssel zwischen den Anführungszeichen ein.
openai.api_key = "YOUR API KEY HERE”
5. Erstellen Sie eine Funktion, GPT(), die die Abfrage (Frage) des Benutzers als Argument entgegennimmt. Das bedeutet, dass wir die Funktion für jede Frage wiederverwenden können.
def GPT(query):
6. Erstellen Sie ein Antwortobjekt, das die Details unserer Abfrage an ChatGPT weiterleitet. Es verwendet unser ausgewähltes Modell und unsere Abfrage, um die Frage zu stellen. Wir haben die maximalen Token-Ausgaben auf 1024 festgelegt, aber in Wirklichkeit werden wir weit weniger ausgeben, damit dies optimiert werden kann. Die „Temperatur“ steuert, wie kreativ die Antworten sein können. Je höher der Wert, sagen wir 0,9, desto kreativer versucht das Model zu sein. 0.5 ist eine gute Mischung aus kreativ und sachlich.
response = openai.Completion.create(
engine=model_engine,
prompt=query,
max_tokens=1024,
temperature=0.5,
)
7. Geben Sie die Daten von ChatGPT zurück, entfernen Sie den Antworttext und die Anzahl der verwendeten Token. Die zurückgegebenen Daten liegen in einem Wörterbuch-/JSON-Format vor, sodass wir mithilfe von Schlüsseln gezielt auf die richtigen Daten abzielen müssen. Diese Schlüssel geben die zugehörigen Werte zurück.
return str.strip(response['choices'][0]['text']), response['usage']['total_tokens']
8. Erstellen Sie ein Tupel und verwenden Sie es, um eine Liste von Zeichenfolgen zu speichern, die zum Verlassen des Chats verwendet werden können. Tupel sind unveränderlich, was bedeutet, dass sie erstellt und zerstört, aber nicht durch den laufenden Code aktualisiert werden können. Sie ergeben perfekte „einstellen und vergessen“-Konfigurationen.
exit_words = ("q","Q","quit","QUIT","EXIT")
9. Verwenden Sie try, gefolgt von while True:, um Python anzuweisen, unseren Code zu versuchen und auszuführen, und zwar für immer.
try:
while True:
10. Drucken Sie eine Anweisung für den Benutzerin diesem Fall wie man den Chat beendet.
print("Type q, Q, quit, QUIT or EXIT and press Enter to end the chat session")
11. Erfassen Sie die Benutzerabfrage mithilfe einer benutzerdefinierten Eingabeaufforderung und speichern Sie sie in einem Objekt namens Abfrage.
query = input("What is your question?> ")
12. Verwenden Sie einen bedingten Test, um zu überprüfen, ob nur eines der exit_words in der Abfrage vorhanden ist. Wir können diese Wörter in einer Abfrage verwenden, aber wenn es die einzigen Wörter sind, wird der Chat beendet.
if query in exit_words:
13. Stellen Sie es so ein, wenn die exit_words vorhanden sind, Der Code druckt „ENDING CHAT“ und Verwenden Sie dann break, um den Code zu stoppen.
print("ENDING CHAT")
break
14. Erstellen Sie eine Else-Bedingung. Diese Bedingung wird immer ausgeführt, wenn keine exit_words gefunden werden.
else:
fünfzehn. Führen Sie die ChatGPT-Abfrage aus und Speichern Sie die Ausgabe in zwei Objekten, res (Antwort) und Verwendung (verwendete Token).
(res, usage) = GPT(query)
16. Geben Sie die ChatGPT-Antwort an die Python-Shell aus.
print(res)
17. Drucken Sie 20 = hintereinander, um eine Barriere zwischen dem ChatGPT-Text zu erstellen, und drucken Sie dann die Anzahl der verwendeten Token.
print("="*20)
print("You have used %s tokens" % usage)
print("="*20)
18. Erstellen Sie einen Ausnahmehandler, der aktiviert wird, wenn der Benutzer STRG+C drückt. Es wird eine Exit-Nachricht an die Python-Shell ausgegeben, bevor der Code beendet wird.
except KeyboardInterrupt:
print("\nExiting ChatGPT")
19. Speichern Sie den Code als ChatGPT-Chatbot.py und Klicken Sie zum Starten auf Ausführen. Stellen Sie dem Chatbot Ihre Fragen und geben Sie anschließend eines der exit_words ein oder drücken Sie STRG+C, um den Chat zu beenden.
Vollständige Codeliste
import openai
model_engine = "text-davinci-003"
openai.api_key = "YOUR API KEY HERE"
def GPT(query):
response = openai.Completion.create(
engine=model_engine,
prompt=query,
max_tokens=1024,
temperature=0.5,
)
return str.strip(response['choices'][0]['text']), response['usage']['total_tokens']
exit_words = ("q","Q","quit","QUIT","EXIT")
try:
while True:
print("Type q, Q, quit, QUIT or EXIT and press Enter to end the chat session")
query = input("What is your question?> ")
if query in exit_words:
print("ENDING CHAT")
break
else:
(res, usage) = GPT(query)
print(res)
print("="*20)
print("You have used %s tokens" % usage)
print("="*20)
except KeyboardInterrupt:
print("\nExiting ChatGPT")