首页 > 其他分享 >渣渣句 - 智能免费的文案大师

渣渣句 - 智能免费的文案大师

时间:2023-12-29 20:56:51浏览次数:30  
标签:uniapp font const image 跨平台 文案 免费 句子 大师

以前经常浏览一个叫句子迷网站,不知何故下线了,我决定做一个类似句子迷一样的产品,专门收集一些名人名言,网络金句等。后来结合自己学习的AI知识,加入了一些文案生成的功能,在“我的”页面可以尝试使用。下面我就从头开始讲一下这款产品的制作过程。

前提条件

相比于其他产品,例如博客、wiki等不需要修改代码,这款产品有一定的开发量,并且这款产品的功能涉及到句子的增删改查和存储,需要前后端联动,因此你至少需要懂一种前端开发语言(如vuejs),一种后端开发语言(如nodejs)以及一种数据库(如mysql)。

技术栈及选型

原生 vs 跨平台: 原生需要为每种平台都开发一个应用(如android和ios以及各种小程序),而跨平台多端共用一套代码,对于独立开发者和中小微企业,选择跨平台是明智之举。

国外跨平台 vs 国产跨平台:国外主要用RN 和 Flutter,这两个框架Flutter最近几年渐入佳境,有很多重量级的APP都是使用RN开发的,例如美团等等。但是国外平台有个硬伤,就是不支持国内生态,尤其是微信生态。因此选国产跨平台也是没得选。

国内跨平台框架: 简单对比便能分出高下,为了全端小程序都能上线,可选项就只有Taro vs uniapp,这是网上搜到的一个对比图,大家可以简单看一下。

框架技术栈案例微信小程序支付宝小程序百度小程序头条小程序H5App
Taro React 丰富
娜娜奇 React ⭕️ ⭕️ ⭕️ ⭕️
wepy Vue 丰富
mpvue Vue 丰富 ⭕️
uni-app Vue 丰富 ⭕️ ⭕️ ⭕️
megalo Vue ⭕️ ⭕️
OKAM Vue
Mpx Vue

 

至于Taro和uniapp怎么选,我觉得因人而异,我希望能够快速的出原型,因此我选择了周边更丰富的uniapp,例如UI框架,甚至用户登录认证模块,uniapp都有现成的模块和插件来支持,所以用uniapp开发会很快。当然我也注意到网上有一些关于uniad的评价,我表示我会自己评估,如果确实有问题,再换到Taro也不难,我在功能设计上已经将几乎所有核心功能做到了服务端,客户端真的就只是个界面展示。

架构设计

 

前端使用uniapp, 用到的开发语言主要是vuejs, 后端采用unicloud, 用到的开发语言是nodejs, 我们只需要下载一个HBuilderX就可以进行uniapp和unicloud开发.

 

 

数据库设计

 

 

id是自增的,topic和category只用了一个字段,用于分类(例如是鸡汤还是国学),content就是短句内容,author_id就是作者的id,image_url是句子卡片的图片位置,uploader是图片上传者的id,enabled用来紧急下线不合规的句子,keywords用来辅助搜索,其他的count用来统计句子的受欢迎程度。

API设计:使用业界流行的swagger/openApi定义接口及接口文档

 

 

接口设计遵循RESTFul原则,针对一种资源Quote,HTTP POST是create,HTTP PUT是修改资源,保证幂等性,HTTP GET有几种,route上包含id的,是查找特定id的资源,搜索也用的HTTP GET,注意unicloud后台数据库是经过改造的mongodb,很容易实现简单的搜索功能。

功能实现

核心功能有几个:句子推荐, 海报生成以及文案生成.

句子推荐: 标签匹配。即给用户按照静态规则打上标签,然后和句子本身的标签做匹配,匹配度高的加以推荐。大概实现思路就是将所有静态规则录入数据库中,然后用规则引擎对每条规则针对每个用户进行求值。例如有一条规则:QuoteDate.Hour == 6 || QuoteDate.Hour == 7 则加一个标签 "日出",当用户请求过来时,只要将QuoteDate设置成当前时间,然后求一下这个规则的值就可以了。

海报生成: 这个功能可以简化为这么一个问题: 给定一句话,一个图片和一种字体, 如何计算字体的大小使得这句话刚好绘制在图片上. 我将这个问题抛给了chatgpt, 让他给我用nodejs实现, 这是他给出的答案, 基本上我改个两三处就可以用了:

const Jimp = require(jimp');

 

// 输入
const imageFile = 'image.jpg'; // 输入图像文件
const fontFile = 'font.ttf'; // 字体文件
const text = '你要绘制的文本';

 

// 创建一个 Promise 以载入图像和字体
async function loadImages() {
const image = await Jimp.read(imageFile);
const font = await Jimp.loadFont(fontFile);

 

return { image, font };

 

}

 

// 主函数
async function main() {
try {
const { image, font } = await loadImages();

 

const imageWidth = image.getWidth();
    const imageHeight = image.getHeight();

    let fontSize = 30; // 初始字体大小
    let textWidth, textHeight;

    do {
        fontSize--;

        // 计算文本尺寸
        textWidth = Jimp.measureText(font, text);
        textHeight = Jimp.measureTextHeight({ text, font }, imageWidth);

    } while (textWidth > imageWidth || textHeight > imageHeight);

    // 计算文本的位置,居中绘制
    const x = (imageWidth - textWidth) / 2;
    const y = (imageHeight - textHeight) / 2;

    // 绘制文本到图像
    image.print(font, x, y, text, textWidth);

    // 保存包含文本的图像
    image.write('output_image.jpg', () => {
        console.log('文本已绘制到图像并保存为 output_image.jpg');
    });
} catch (err) {
    console.error('出现错误:', err);
}

 

}

 

main();

文案生成目前还在探索阶段, 效果还不是很好, 下次再讲.

部署及运维

 

 

unicloud我用的是19块钱包月的套餐, 用户量小的时候, 这个基本够用了。APP端的上架较为复杂,截至到发稿,我也没能成功上架APP。首先上架国内android市场,必须申请软著,而这个软著是真贵(两三个月的得上千),这一块等我上架成功了再补上。IOS上架也不顺利, 给我回复Guideline 4.3 - Design, 我就怕是Uniapp开发的都被4.3, 有谁懂的可以私信我. 最终上架成功了支付宝小程序和微信小程序。

盈利模式探讨

目前是放广告, 使用uniad, 不过等文案生成的功能稳定后, 我可能会弃用广告, 直接转收费.

标签:uniapp,font,const,image,跨平台,文案,免费,句子,大师
From: https://www.cnblogs.com/72jueji/p/17935647.html

相关文章

  • AlmaLinux 8.9 发布 - RHEL 下游免费发行版(CentOS 稳定版的替代品)
    AlmaLinux8.9发布-RHEL下游免费发行版(CentOS稳定版的替代品)AlmaLinuxOS是一个开源、社区驱动的项目,旨在提供CentOS稳定版的替代品。作者主页:sysin.org2023.11.21,AnnouncingAlmaLinux8.9Stable!关于新增功能可以参考:RedHatEnterpriseLinux(RHEL)8.9(x86_64,aarc......
  • 大屏工具免费版
    大屏工具免费版,解压后将demo文件夹拷贝到tomcat的webapps目录下,需要jdk8和tomcat7+,启动tomcat后访问http://127.0.0.1:8080/demo/solidbi/index.html,帮助文档访问http://127.0.0.1:8080/demo/solidbi/document.htmldemo文件好像没办法上传呀,有需要我发给你......
  • 免费背景音人声分离解决方案MVSEP-MDX23,足以和Spleeter分庭抗礼
    在音视频领域,把已经发布的混音歌曲或者音频文件逆向分离一直是世界性的课题。音波混合的物理特性导致在没有原始工程文件的情况下,将其还原和分离是一件很有难度的事情。言及背景音人声分离技术,就不能不提Spleeter,它是一种用于音频源分离(音乐分离)的开源深度学习算法,由Deezer研究......
  • VxTerm,真正国产的、免费的、替代SecureCRT等工具软件的国产化Telnet、SSH超级终端工具
    VxTerm是一款由作者本人(郑鹏飞)于2023年9月推出的第一款,用C++语言编写的国产化的、纯绿色无依赖单文件、免费的无需注册无任何功能限制的、多线程多窗口多会话管理的、用以替代SecureCRT、XShell、MobaXTerm、puTTy等国外软件的支持Telnet、SSH、Serial串口、SFTP图形化文件上下传的......
  • 白箱视频文案
    作为动画爱好者,你对动画的幕后感到过好奇?(接op)比如,动画是制作完后再播出,还是边播出边修改剧情?只是观看一部动画的成品,可能很难想象其背后的种种制作过程。剧本、原画、分镜、摄影、演出……一部动画的制作流程十分复杂。(流程图画面)在动画制作公司,你或许会邂逅性格迥......
  • 开源免费又好用的中式数据报表:UReport2是一款高性能的架构在Spring之上纯Java报表引
    北润乾、南帆软,数加发力在云端。uReport身何安?中式报表真开源。报表江湖之中,uReport安身立命的产品品类定位是什么?说来很简单,uReport的价值在于填补了这样一个市场空白:开源免费又好用的中式数据报表UReport2是一款高性能的架构在Spring之上纯Java报表引擎,通过迭代单元格可以......
  • 不需要本地部署大模型,modelscope-agent加qwen-max免费搭建自己的定制机器人
    最近阿里开源了通用大模型qwen-72b,正在为怎么本地化部署发愁,转眼看到提供了qwen-max相关接口的免费试用(据说就是基于qwen-72b大模型),这就来体验一番。1.前期准备开通阿里云灵积平台,并创建api-key2.环境搭建python:3.10+;pydantic2.0以上,老版本pydantic会报一个tool_sche......
  • 10款基于PHP的免费CMS推荐
    总结的10款基于PHP的免费CMS,想要通过PHP+MYSQL搭建网站的朋友可以从中参考。要查看详细介绍可以看BBon的原文,这里只是简单侃一下。Joomla!Joomla!的前身是Mambo的开源码计划,Drupal直逼Joomla!的开源CMS,不过貌似用户群还是没有Joomla!多。Mambo企业类CMS网站可以选择,个......
  • Latex 公式 如何转为Word 公式,免费线上网站
    在实际中,我们常常需要讲将atex公式在word中书写。不采用手敲word公式,如何直接从Latex公式转word公式:非常好的网站:https://www.latexlive.com/可以直接复制公式到word中粘贴,省去很大的负担!......
  • 打驴动漫app|免费看片儿神器|聚集全网影视资源
    今日语录:人世间的许多执念,你可以不理解,但并不代表它不存在各位看官大家好,walkdawn很高兴再次与大家见面。现在的影视平台能免费观看的作品越来越少,几乎都要vip,今天walkdawn给大家推荐一款可以免费看全网影视的软件--打驴动漫。有些看官看到这里,或许会因为这个软件的名字而下意......