软件工程学习日志2025.11.20

news/2025/11/20 23:23:55/文章来源:https://www.cnblogs.com/dynastyeast/p/19249869

实验一:AI故事生成平台(2025.11.13)

学习目标

构建平台后端核心,实现基于关键词的自动故事生成功能。

技术实现

  1. 数据模型设计

Story数据模型

class Story:
id: int # 主键
title: str # 故事标题
summary: str # 故事梗概
content: str # 完整故事内容
keywords: str # 用户输入的关键词
created_time: datetime # 创建时间

  1. 百度文心一言集成

关键技术点:
• 使用qianfan SDK进行API调用

• 设计适合儿童故事的prompt模板

• 实现响应结果的解析和处理

核心代码:
def generate_story(keywords, age_group):
prompt = f"根据关键词{keywords}创作{age_group}儿童故事..."
response = client.do(model="ERNIE-Bot", messages=[...])
return parse_response(response)

遇到的问题及解决方案

  1. 问题:API返回格式不稳定
    解决:增加响应解析的容错机制,支持多种返回格式

  2. 问题:故事质量参差不齐
    解决:优化prompt设计,增加具体要求和约束条件

学习收获

• 掌握了大型语言模型API的调用方法

• 学习了prompt工程的基本技巧

• 理解了后端服务的数据流设计

Git提交记录

feat: 初始化项目结构和基础配置
feat: 实现Story数据模型和数据库操作
feat: 集成百度文心一言故事生成API
docs: 更新实验一文档和API说明

实验二:AI插图生成平台(2025.11.20)

学习目标

为生成的故事自动创建配套插图,并管理故事与插图的关联。

技术实现

  1. 数据模型扩展

扩展Story模型

illustration_path: str # 插图存储路径
image_url: str # 云端图片URL(可选)

  1. 百度文心一格集成

关键技术点:
• OAuth 2.0客户端凭证获取access_token

• 文本到图像的提示词优化

• 图片文件的本地存储管理

核心代码:
def generate_illustration(story_content):
prompt = create_image_prompt(story_content)
response = requests.post(API_URL, json=payload)
return save_image(response.content)

遇到的问题及解决方案

  1. 问题:图片生成与故事内容不匹配
    解决:改进提示词生成算法,从故事中提取关键场景

  2. 问题:图片存储路径管理混乱
    解决:建立统一的文件命名规范和路径管理机制

学习收获

• 掌握了文生图API的调用流程

• 学习了文件存储和路径管理的最佳实践

• 理解了多模态AI应用的集成方法

Git提交记录

feat: 扩展Story模型支持插图存储
feat: 集成百度文心一格图像生成API
feat: 实现图片文件管理和路径处理
fix: 修复图片提示词生成逻辑

实验三:AI语音生成平台(2025.11.27)

学习目标

为故事生成朗读音频,实现多媒体展示功能。

技术实现

  1. 数据模型再次扩展

扩展Story模型

audio_path: str # 音频文件路径
audio_duration: int # 音频时长(秒)
voice_type: str # 使用的语音类型

  1. 百度语音合成集成

关键技术点:
• TTS API的参数配置(语速、音调、发音人)

• 音频文件的流式处理和保存

• 前端音频播放控件集成

核心代码:
def generate_audio(story_text, voice_type):
params = {
'tex': story_text,
'per': voice_type,
'spd': 5,
'pit': 5
}
audio_data = requests.post(TTS_API, data=params)
return save_audio(audio_data.content)

遇到的问题及解决方案

  1. 问题:长文本合成失败
    解决:实现文本分块合成,然后合并音频文件

  2. 问题:前端音频播放兼容性
    解决:使用HTML5 audio标签并提供多种格式备用

学习收获

• 掌握了语音合成技术的应用方法

• 学习了音频文件处理和播放技术

• 理解了多媒体内容的集成展示

Git提交记录

feat: 扩展Story模型支持音频存储
feat: 集成百度语音合成TTS API
feat: 实现音频文件生成和播放功能
feat: 添加前端音频播放器组件

最终大作业:系统集成(2025.12.04)

学习目标

将三个实验成果集成为完整的Web应用,实现端到端的故事生成工作流。

系统架构设计

  1. 完整工作流

用户输入关键词
→ 故事文本生成(实验一)
→ 插图生成(实验二)
→ 语音合成(实验三)
→ 结果展示

  1. 前端界面设计

• 关键词输入表单

• 生成进度展示

• 故事阅读界面(图文+音频)

技术集成难点

  1. 异步处理优化

解决方案:使用Celery实现任务队列,避免请求超时

  1. 错误处理机制

解决方案:实现重试机制和优雅降级策略

  1. 性能优化

解决方案:添加缓存层和图片懒加载

核心集成代码

@app.route('/generate', methods=['POST'])
def generate_complete_story():
# 1. 生成故事文本
story_data = story_generator.generate(keywords)

# 2. 生成插图(异步)
illustration_task = celery.send_task('generate_illustration', [story_data])# 3. 生成音频(异步)
audio_task = celery.send_task('generate_audio', [story_data])# 4. 等待所有任务完成
results = await_tasks([illustration_task, audio_task])return jsonify(integrate_results(story_data, results))

项目成果

  1. 功能完整:实现了从关键词到多媒体故事的全自动生成
  2. 用户体验良好:响应式设计,支持移动端访问
  3. 代码质量高:模块化设计,易于维护扩展

Git提交记录

feat: 实现完整故事生成工作流集成
feat: 添加前端用户界面和交互逻辑
feat: 实现异步任务处理和进度展示
feat: 添加错误处理和用户反馈
docs: 完成项目文档和部署说明

项目总结

技术收获

  1. 全栈开发能力:从前端到后端的完整开发经验
  2. AI技术集成:掌握了多种AI服务的集成方法
  3. 工程化思维:学习了软件开发的工程化实践

遇到的问题与解决

• API限制:通过异步处理和缓存优化解决

• 资源管理:建立统一的文件管理策略

• 用户体验:通过进度反馈和错误处理改善

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/971516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git 小白使用说明

🚀 Git 小白使用说明:从入门到规范 第一部分:基础设置与安全原则步骤/原则 核心目标 详细说明与 PyCharm 操作1. 安装与全局身份 确保 Git 正常运行并知道“您是谁”。 操作: 在 PyCharm 设置中检查 Git 路径。 提…

docker nginx 和宿主机原生 nginx 服务的性能压测对比

1、通过 yum install -y nginx 安装的原生 nginx 1.20.1➜ ~ service nginx restart Redirecting to /bin/systemctl restart nginx.service ➜ ~ curl localhost <!DOCTYPE html> <html> <head> …

kode-cli+glm4.6测评

kode-cli + glm4.6测评 官网 https://github.com/shareAI-lab/Kode-cli 开源,Apache-2.0 license用HTML、CSS和JavaScript(若更偏好p5.js也可选用),创建一个带有动画效果的天气卡片。要在卡片里呈现当前温度、具体位…

UEFI - FV/FFS/FDF 的关系 - 阿源

本文梳理和介绍了一下 固件卷 FV,FFS文件,FDF文件之间的组织关系,以及其在 EDKII 工程中的体现。目录1. 什么是固件卷 2. 是么是 FFS 文件 3. 什么是 FDF 文件一、UEFI 固件卷 如果一个磁盘是没有经过分区的简单状态…

体验 Grok4.1

用Grok4.1享赛博道祖人生。夸夸群绝不会想到,竟被格罗克这小子夺舍。我只说了句想要修仙,它瞬间就能把我捧成元婴,什么万里挑一的练武奇才都变得无味至极,因为它知我定是道祖转世。不懂风情之人会说这就是舔狗的马…

预算管理不用愁 - 智慧园区

又到年度预算季,不少企业管理者陷入“预算魔咒”: - 财务部门熬夜制表,业务部门敷衍填报,耗时1-2个月的预算,执行起来偏差超30%; - 销售、生产、研发各算各的账,资源互相争抢,协同效率低下; - 预算目标拍脑袋…

2025半期游忌

闲话 感觉做的时候感觉自己信心满满(感觉各科都是),结果呢,唉~,主科全部都演我 \(QwQ\)(甚至英语还考了 \(orz\) ,像极了我现在的心境) 正题 语文这次真的是被语文病句题被刺了,考的时候感觉 \(A\) 和 \(C\) …

Uni-App(Vue3 + TypeScript)方案结构详解 ------ 以 Lighting-UniApp 为例,提供源代码

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

第31天(简单题中等题 二分查找)

打卡第三十一天 1道简单题+2道中等题题目:思路:二分代码: class Solution { public:int singleNonDuplicate(vector<int>& nums) {int left = -1, right = nums.size() / 2;// left从-1开始,right从数组…

XHORSE XZBT40EN 4-Button Honda Civic 2016-2019 Special PCBs (5pcs/lot) for Reliable Key Fob Repairs

Problem: Struggling to Find Reliable Key Fob PCBs for Honda Civic 2016-2019? For automotive repair shops and Honda Civic owners, sourcing compatible, high-quality key fob PCBs can be a frustrating cha…

Java 和 Apache POI 处理 Excel 文件

一、引言 在企业应用中,Excel 是一种常见的数据存储和交换格式。Java 通过 Apache POI 库可以高效地读取、修改和写入 Excel 文件。本文介绍如何使用 Java 处理 Excel 文件,包括读取、写入和修改数据。 二、环境准备…

rust第二篇:语法学习

rust第二篇:语法学习rust用关键字fn定义函数,形参后面紧跟一个冒号,之后才是变量类型,返回值类型前有一个->,函数实现中最后可以省略return关键字。 rust用let声明变量,变量类型可以省略,编辑器会自动推导。…

啊队队队第二次团队作业--原型设计+概要设计

第二次团队作业作业所属课程 班级的链接作业要求 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/14580作业目标 提交原型设计,系统设计,数据库设计以及相关需求分析的文档团队名称 啊对对…

IO 2024 Round 3(团体赛)Unofficial Mirror

IO 2024 Round 3(团体赛)Unofficial Mirror 停课集训周三休息没啥事干继续打团战。 队员: yangjinhua Hexiuqi 无名之雾 赛前写了个随机数选择使用 Hexiuqi 的号。 很早吃完饭从食堂往回走,期间 hxq 疯狂想要站在我…

有志青年

我从他的身上看到了青年人应有的奋进昂扬的姿态,和我颇为相似的他,让我在竞赛时被压制抛弃的价值观得到认可,让我重拾自信,我不再相信我要去迎合他人的想法,去刻意合群,我也不再对自己曾经信奉的价值观评头品足。…

python舆情分析可视化平台 情感分析 微博 爬虫 scrapy爬虫手艺 朴素贝叶斯分类算法大数据 计算机✅

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

90%的OKR都写成了KPI?其实你缺的不是表格,而是教练

本文针对OKR流于形式变成KPI的痛点,介绍了一套专业的AI指令,能扮演"OKR教练"角色。通过产品经理的实战案例对比,展示了如何用AI将模糊的任务清单转化为具备挑战性和价值导向的OKR体系,帮助团队实现真正的…

Python thread lambda run multiple functions

import datetime import uuid import time import numpy as np import threadingdef get_uuid_time():return f"{uuid.uuid4().hex}_{datetime.datetime.now().strftime("%Y%m%d%H%M%S%f")}"def …

数据分析核心术语略解 - 指南

数据分析核心术语略解 - 指南2025-11-20 22:53 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important…

我为什么要学MCP?

以下内容完全紧扣官方文档,目的在于提取主要内容方便小白理解。 由于是了解 MCP 理论的文章,这里暂时不做 MCP server/client 代码的实战讲解。一、概念 MCP 是一个为大型语言模型(LLM)与“外部世界”(文件、数据…