0 什么是 AI-Design
智能Logo设计同时提供品牌 VI 展示和电子名片生成等功能,实现多场景下的Logo 设计。
0 智能设计工具
1 DEMO阶段
作为 MVP 版本,通过上述三个模块,实现了 AI-Design 的主体功能,用户输入品牌名,通过算法模块进行品牌解析,获取品牌相关的icon素材,根据用户选择的Logo风格,前端模块以特定布局模式,组合各种素材,产出Logo。其中调度服务提供一个简单的webserver,打通用户端和算法服务,以及提供静态素材给前端进行Logo 生成。
2 内部服务阶段
2.1 目标
算法服务不应该直接暴露给用户,算法服务本身作为底层服务与调度服务进行数据交互即可。
调度服务中增加素材管理功能,通过数据库去获取和记录icon使用情况,保存生成 Logo使用的信息组合。
增加用户服务,提供内网用户登录验证,记录请求事件。
服务完善日志系统,增加监控和部分关键数据采集。
2.2 效果
2.3 痛点
3 对外服务阶段
3.1 目标
希望扩充Gate调度服务能力,以减轻前端功能的负担。
由于上文中提到的,避免渲染逻辑和渲染素材外露,则需要将 Logo 渲染功能进行服务化改造,使之成为后端基础服务提供渲染能力,对数据进行保护;同时避免不同浏览器版本对渲染结果产生影响,通过渲染功能后端化来保证渲染效果唯一。
扩充用户服务能力,增加多端登录,用户信息记录等功能。
增加素材更新模块:由于icon素材数量和来源增加,需要有相应的模块去维护这些素材,统一进行标准化和入库操作以节省人力成本。
3.2 效果
Gate调度服务功能扩展
对于简单的接口,可以直接提供gRPC到HTTP的协议转换,避免增加相应的HTTP-API代码。
对于复杂的接口,Gate服务使用接口组合的方式,对下层rpc服务进行封装,避免前端处理复杂逻辑进行多次对后端的HTTP请求。
统一进行鉴权验证,所有流量都要经过Gate服务,避免下层服务需要额外进行用户身份校验。
渲染服务后端化
渲染功能独立为一个基础服务,能够保护我们的素材资源不被恶意拉取,同时可以保证每一个生成的Logo可追溯、可还原,避免产生版权风险。
渲染功能作为独立的功能,可以脱离AI-Design项目作为单独的基础服务,提供素材-模版-渲染的解决方案。
渲染服务本身也是整个业务流程中性能损耗最严重的部分,将渲染服务抽离出来,可以灵活部署和扩缩容,提高可用性和性能。
用户服务功能扩展
增加下载/收藏等与用户身份关联的功能,提高产品的完整性。
为未来的个性化服务和付费服务做准备。
架构整体优化
AI-Design服务中存在的多语言场景,通过protobuf+gRPC实现接口定义同步。
区分上下层微服务:如NLP模块,渲染模块,素材更新模块等不需要直接面对用户的服务,统一作为下层微服务管理,只与上层微服务产生数据交互,调度服务不会直接与之通信;上层微服务(素材服务,用户服务)则可以直接与调度服务进行通信。
有分有合
合是指将接口收敛到Gate服务,分包括渲染功能后端化和微服务层级拆分。
合带来的好处是需要维护的模块减少,随之产生问题的概率也会降低,并且每次增加新功能所需的代码变更量也会降低。
分则可以大幅优化容器资源的利用,降低成本。
3.3 可优化点
AI-Design未来将会围绕Logo产物增加分享、收藏、推荐、评分等功能,记录用户的每个作品,便于用户实时查看和使用。
4 总结和展望
4.1 总结
4.2 展望
AI-Design从demo到 正式对外上线经历了多次架构演进,逐步完善,其中包含了很多探索和尝试,例如多语言服务之间的数据交互、算法服务和渲染服务的性能优化、以及对基础功能拆分和组合,提高代码复用、降低开发成本等。在此基础上,可以说是形成了一套针对智能设计工具的开发路线和方法。当然,技术方案总会随着需求增加而改变,AI-Design架构可能还会不断迭代更新,拥有更为坚实的基础,以成为一个更好的产品。
4.3 欢迎体验
本篇文章来源于微信公众号: 腾讯CDC体验设计