当前位置: 首页 > news >正文

摘要生成器(Gradio界面)

摘要生成器(Gradio)

任务背景

该任务是构建一个基于大语言模型(LLM)的文本摘要工具,允许用户输入任意文章并通过AI模型生成简洁的摘要。任务通过Gradio框架实现交互式Web界面,用户可调整生成参数(如温度参数),并支持导出摘要结果。

核心功能

  1. 文本摘要生成:用户输入文章后,模型根据预设提示词生成概括性内容。
  2. 参数控制:通过温度参数调节生成结果的创造性(温度值越高,输出越多样化)。
  3. 交互界面:提供直观的输入输出区域、重置对话和导出结果的功能。
  4. 结果保存:支持将对话记录和原文导出为JSON文件。

技术要点

  • 模型调用:使用OpenAI兼容的API(如阿里云DashScope)调用大语言模型(如qwen-turbo)。
  • Web框架:借助Gradio快速构建可视化界面,简化用户操作流程。
  • 数据持久化:通过JSON文件保存生成结果,便于后续分析或复用。

完整代码

import json
from typing import List, Tupleimport openai
import gradio as gr# 设置API密钥(示例为阿里云DashScope)
OPENAI_API_KEY = "TripleH"
client = openai.OpenAI(api_key=OPENAI_API_KEY,base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",  # 阿里云API端点
)# 预设摘要提示词
prompt_for_summarization = "请将以下文章概括成几句话。"def reset() -> List:"""重置对话历史"""return []def interact_summarization(prompt: str, article: str, temp=1.0) -> List[Tuple[str, str]]:"""调用模型生成摘要:param prompt: 提示词:param article: 待摘要文章:param temp: 温度参数(控制输出多样性)"""input = f"{prompt}\n{article}"response = client.chat.completions.create(model="qwen-turbo",messages=[{'role': 'user', 'content': input}],temperature=temp,)return [(input, response.choices[0].message.content)]def export_summarization(chatbot: List[Tuple[str, str]], article: str) -> None:"""导出对话记录和原文到JSON文件"""target = {"chatbot": chatbot, "article": article}with open("files/part1.json", "w") as file:json.dump(target, file)# 构建Gradio界面
with gr.Blocks() as demo:gr.Markdown("# 第1部分:摘要\n填写任何你喜欢的文章,让聊天机器人为你总结!")chatbot = gr.Chatbot()prompt_textbox = gr.Textbox(label="提示词", value=prompt_for_summarization, visible=False)article_textbox = gr.Textbox(label="文章", interactive=True, value="填充")with gr.Column():gr.Markdown("# 温度调节\n温度用于控制聊天机器人的输出。温度越高,响应越具创造性。")temperature_slider = gr.Slider(0.0, 2.0, 1.0, step=0.1, label="温度")with gr.Row():sent_button = gr.Button(value="发送")reset_button = gr.Button(value="重置")with gr.Column():gr.Markdown("# 保存结果\n当你对结果满意后,点击导出按钮保存结果。")export_button = gr.Button(value="导出")# 绑定按钮事件sent_button.click(interact_summarization, inputs=[prompt_textbox, article_textbox, temperature_slider], outputs=[chatbot])reset_button.click(reset, outputs=[chatbot])export_button.click(export_summarization, inputs=[chatbot, article_textbox])demo.launch(debug=True)
http://www.dtcms.com/a/602790.html

相关文章:

  • tldraw——一款开源、自托管、支持实时协作的 Web 白板
  • 厚街网站建设报价软文推广平台排名
  • 在.NET中使用RAG检索增强AI基于Qdrant的矢量化数据库
  • 【STM32MP157 异核通信框架学习篇】(1)SMP和AMP架构
  • 【OpenCV + VS】从纯色的背景中扣出前景然后对背景颜色进行转换
  • 网站线上推广方案wordpress大学主题安装
  • C语言编译软件的获取 | 如何选择适合的C语言编译器并安装使用
  • 前端进阶题【面试题】- 持续更新
  • 外贸网站建设流程昆明网站建设团队
  • 网站建设公司好不好西安活动公司
  • 专业的佛山网站建设wordpress 商城
  • 网站框架规划wordpress手机上发文
  • 十八,Spring Boot 整合 MyBatis-Plus 的详细配置
  • 公司网站建设模块文学网站开发
  • 福建石狮有做网站的没东莞找工作在什么平台找合适
  • 存储过程(SQL)
  • 惠州做学校网站天津团购鲜花的网站建设
  • 广州建设企业网站php+ajax网站开发典型实例pdf
  • MyBatis Plus中执行原生SQL语句方法
  • 网站开发干啥的苏州工业园区外国语学校
  • 德胜门网站建设网站开通支付宝接口
  • phonegap wordpress嘉兴市做网站优化
  • 网站在线开发极简个人网站模板
  • 做网站联盟hmm船公司网站
  • Python是编译语言吗 | 深入分析Python的解释执行方式与编译模式
  • Linux 中断处理机制详解:上下半部、内核线程与中断线程化
  • PCB之电源完整性之电源网络的PDN仿真CST---09
  • 专业营销的网站建设公司排名网站建设的经验总结
  • 【动态规划】二维的背包问题、似包非包、卡特兰数
  • 接口管理工具PostIn,从安装到入门零基础教程