返回

玩转PyQt5与智能大模型:春联乐园的奇妙生成之旅

后端






玩转PyQt5与智能大模型:春联乐园的奇妙生成之旅

前言

随着科技的发展,人工智能已经渗透到我们生活的方方面面。各大模型满天飞,笔者试用了很多模型,科大讯飞感觉还不错,且现在有免费额度,借此机会尝试开发了一款基于Python、PyQt5和科大讯飞AI技术的春联生成器。该生成器可以轻松生成春联,还能将生成的春联以图片的形式保存下来。让春联写作成更加有趣和便捷。

设计与实现

该春联生成器由以下几个部分组成:

  • 用户界面 :用户界面采用PyQt5设计,界面简洁友好,操作简单。用户可以通过用户界面输入上联或下联,然后点击“生成”按钮,即可生成春联。
  • 春联生成器 :春联生成器采用科大讯飞AI技术,可以根据用户输入的上联或下联,自动生成春联。
  • 图片生成器 :图片生成器可以将生成的春联以图片的形式保存下来。

使用说明

  1. 下载并安装Python和PyQt5。
  2. 下载并安装科大讯飞AI SDK。
  3. 将春联生成器代码复制到本地。
  4. 运行春联生成器。
  5. 在用户界面中输入上联或下联,然后点击“生成”按钮。
  6. 春联生成器将自动生成春联。
  7. 点击“保存”按钮,将生成的春联以图片的形式保存下来。

结语

这款春联生成器是一款非常实用的工具,它可以帮助用户轻松生成春联,还可以将生成的春联以图片的形式保存下来。相信这款春联生成器能够在春联创作中发挥积极的作用。

示例代码

import sys
import PyQt5
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QLineEdit, QLabel
from PyQt5.QtGui import QPixmap
import requests

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("春联生成器")
        self.resize(600, 400)

        self.central_widget = PyQt5.QtWidgets.QWidget()
        self.setCentralWidget(self.central_widget)

        self.layout = PyQt5.QtWidgets.QVBoxLayout()
        self.central_widget.setLayout(self.layout)

        self.label_1 = PyQt5.QtWidgets.QLabel("上联:")
        self.layout.addWidget(self.label_1)

        self.line_edit_1 = PyQt5.QtWidgets.QLineEdit()
        self.layout.addWidget(self.line_edit_1)

        self.label_2 = PyQt5.QtWidgets.QLabel("下联:")
        self.layout.addWidget(self.label_2)

        self.line_edit_2 = PyQt5.QtWidgets.QLineEdit()
        self.layout.addWidget(self.line_edit_2)

        self.button_generate = PyQt5.QtWidgets.QPushButton("生成")
        self.layout.addWidget(self.button_generate)

        self.label_3 = PyQt5.QtWidgets.QLabel()
        self.layout.addWidget(self.label_3)

        self.button_save = PyQt5.QtWidgets.QPushButton("保存")
        self.layout.addWidget(self.button_save)

        self.button_generate.clicked.connect(self.on_button_generate_clicked)
        self.button_save.clicked.connect(self.on_button_save_clicked)

    def on_button_generate_clicked(self):
        upper_couplet = self.line_edit_1.text()
        lower_couplet = self.line_edit_2.text()

        if upper_couplet == "" and lower_couplet == "":
            self.label_3.setText("请输入上联或下联")
            return

        url = "https://www.ke.com/ai/restful/couplet/generate"
        params = {
            "input": upper_couplet + lower_couplet
        }
        response = requests.get(url, params=params)

        if response.status_code != 200:
            self.label_3.setText("生成春联失败")
            return

        result = response.json()
        couplet = result["couplet"]

        self.label_3.setText(couplet)

    def on_button_save_clicked(self):
        text = self.label_3.text()
        if text == "":
            self.label_3.setText("请先生成春联")
            return

        pixmap = QPixmap()
        pixmap.loadFromData(text.encode("utf-8"))

        dialog = PyQt5.QtWidgets.QFileDialog()
        dialog.setWindowTitle("保存春联")
        dialog.setFilter("图片文件 (*.png *.jpg *.bmp)")

        if dialog.exec():
            filename = dialog.selectedFiles()[0]
            pixmap.save(filename)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec())