Verwenden Sie das kognitive Big Model von Xunfei Xinghuo, um einen Chatbot mit Schnittstelle zu erstellen

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
Fügen Sie hier eine Bildbeschreibung ein

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. tkinterStellen Sie sicher, dass die Module und importiert sind SparkApi.

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 rootTkinter-Fenster mit dem Namen und legen den Titel des Fensters auf „Chatbot“ fest. Dann haben wir ein Textfeld textEditund 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

Je suppose que tu aimes

Origine blog.csdn.net/winniezhang/article/details/132375902
conseillé
Classement