In diesem Blog erstellen wir eine einfache Chatbot-Schnittstelle mit dem neuesten Spark Cognitive Mockup und Tkinter. Über diese Schnittstelle können Benutzer mit dem Chatbot interagieren und die Antworten des Bots anzeigen.
C:\pythoncode\blog\static_16919367030710594_SparkApi_Python\testui.py
Vorbereitung
Bevor wir beginnen, müssen wir einige Arbeiten vorbereiten:
-
Installieren Sie Python und Tkinter: Stellen Sie sicher, dass Python auf Ihrem Computer installiert ist und das Tkinter-Modul funktioniert.
-
SparkApi-Schlüsselinformationen abrufen: Rufen Sie Ihre SparkApi-Schlüsselinformationen in der Konsole ab, einschließlich APPID, APISecret und APIKey. Diese Informationen werden verwendet, um eine Verbindung mit SparkApi herzustellen und Antworten zu erhalten.
-
Importieren Sie die erforderlichen Module: Wir verwenden Tkinter zum Erstellen der Schnittstelle und ein benutzerdefiniertes SparkApi-Modul zur Kommunikation mit dem Chatbot.
tkinter
Stellen Sie sicher, dass die Module und importiert sindSparkApi
.
Schnittstelle erstellen
Zuerst müssen wir ein Tkinter-Fenster und einige Komponenten erstellen, um die Chatbot-Schnittstelle zu erstellen. Hier ist der Code zum Erstellen der Schnittstelle:
import tkinter as tk
import SparkApi
from tkinter import messagebox
# 创建窗口
root = tk.Tk()
root.title("Chatbot")
# 创建文本框
textEdit = tk.Text(root)
textEdit.pack()
# 创建发送按钮
sendButton = tk.Button(root, text="发送", command=sendMessage)
sendButton.pack()
# 运行主循环
root.mainloop()
Im obigen Code erstellen wir ein root
Tkinter-Fenster mit dem Namen und legen den Titel des Fensters auf „Chatbot“ fest. Dann haben wir ein Textfeld textEdit
und eine Senden-Schaltfläche erstellt sendButton
. Verwenden Sie abschließend, um die root.mainloop()
Hauptschleife von Tkinter auszuführen und das Fenster weiterhin angezeigt zu lassen.
Behandeln Sie Benutzereingaben und erhalten Sie Antworten
Als nächstes müssen wir Funktionen schreiben, um Benutzereingaben zu verarbeiten und Antworten vom Chatbot zu erhalten. Hier ist der Code für die Handler-Funktion:
def sendMessage():
# 获取用户输入的文本
inputText = textEdit.get("1.0", tk.END).strip()
# 将用户输入的文本发送给 SparkApi,并获取回答
answer = SparkApi.getAnswer(inputText)
# 将回答显示在文本框中
textEdit.insert(tk.END, answer)
Im obigen Code haben wir eine sendMessage()
Funktion definiert, die als Rückruffunktion der Schaltfläche „Senden“ bezeichnet wird. Innerhalb der Funktion rufen wir zunächst textEdit.get("1.0", tk.END)
den vom Benutzer in das Textfeld eingegebenen Textinhalt ab und entfernen die führenden und nachfolgenden Leerzeichen. Anschließend senden wir die Eingaben des Benutzers an SparkApi und erhalten die Antwort des Chatbots. Zum Schluss zeigen wir textEdit.insert(tk.END, answer)
die Antwort in einem Textfeld an.
Führen Sie das Programm aus
Nachdem wir das Schreiben der Schnittstellen- und Verarbeitungsfunktionen abgeschlossen haben, können wir das Programm ausführen. Stellen Sie sicher, dass Sie die Schlüsselinformationen von SparkApi korrekt konfiguriert haben und die erforderlichen Abhängigkeiten auf Ihrem Computer installiert wurden. Nachdem Sie das Programm ausgeführt haben, sehen Sie eine einfache Chatbot-Oberfläche. Sie können eine Frage in das Textfeld eingeben und auf die Schaltfläche „Senden“ klicken. Der Chatbot gibt eine Antwort und zeigt sie im Textfeld an.
alle Codes
import tkinter as tk
import SparkApi
from tkinter import messagebox
def showMessage(message, title):
messagebox.showinfo(title, message)
#以下密钥信息从控制台获取
appid = "" #填写控制台中获取的 APPID 信息
api_secret = "" #填写控制台中获取的 APISecret 信息
api_key ="" #填写控制台中获取的 APIKey 信息
#用于配置大模型版本,默认“general/generalv2”
domain = "general" # v1.5版本
#云端环境的服务地址
Spark_url = "ws://spark-api.xf-yun.com/v1.1/chat" # v1.5环境的地址
text =[]
# length = 0
def getText(role,content):
jsoncon = {
}
jsoncon["role"] = role
jsoncon["content"] = content
text.append(jsoncon)
return text
def getlength(text):
length = 0
for content in text:
temp = content["content"]
leng = len(temp)
length += leng
return length
def checklen(text):
while (getlength(text) > 8000):
del text[0]
return text
def sendMessage():
Input = textEdit.get("1.0", tk.END).strip()
print(Input)
question = checklen(getText("user",Input))
print(question)
SparkApi.answer =""
print("星火:",end = "")
SparkApi.main(appid,api_key,api_secret,Spark_url,domain,question)
answer = getText("assistant",SparkApi.answer)
answer_str = " ".join(answer)
showMessage("Answer: " + answer_str, title="Answer")
text.clear()
root = tk.Tk()
root.title("Chatbot")
textEdit = tk.Text(root)
textEdit.pack()
sendButton = tk.Button(root, text="发送", command=sendMessage)
sendButton.pack()
root.mainloop()
Zusammenfassen
In diesem Blog haben wir mit Python und Tkinter eine einfache Chatbot-Schnittstelle erstellt. Über diese Schnittstelle können Benutzer mit dem Chatbot interagieren und die Antworten des Bots anzeigen. Über diese einfache Schnittstelle können wir Chatbots in verschiedene Anwendungen integrieren, um intelligente Dialogfunktionen bereitzustellen. Ich hoffe, dieser Blog ist hilfreich für Sie, vielen Dank fürs Lesen!
Referenzbeispiel: https://www.xfyun.cn/doc/spark/Web.html#_2-%E8%B0%83%E7%94%A8%E7%A4%BA%E4%BE%8B