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

Photon AI Translator 和做产品的一些思考

近 4 个月内我一直在做 Apple 平台的产品,虽然从使用量来说「简体中文」用户是占多数,但我一直有做多语言的支持:英语、简体中文和繁体中文。习惯上 Google 翻译的我,基本上在使用 Xcode 过程中也会一直在浏览器开着 Google Translate 的网页,为的是能 ”随时“ 地去把简体中文翻译成繁体中文——当然这个 ”随时“ 可真不是随时,毕竟从 Xcode 切换到 Chrome 再到对应的 Tab 还是需要点功夫。

是的,我知道浏览器划词翻译已经有众多的插件来支持——但是我日常开发工作的主战场,并不是在浏览器。作为使用 MacBook Pro 单屏幕开发的人来说,切换一个窗口都是麻烦的事情。

有没有能帮我加速这个工作流的工具呢?

如果没有,或者找不好,那就很简单:自己做一个。

以上只是需求背景,契机是:Open AI 开放 API 了,我们可以使用同样驱动 ChatGPT 的 GPT-3.5 模型,来接入 AI 到我们自己的工作流了。在社交网络到处充斥着关于 ChatGPT 的消息的时候,你很难不去对它的作用产生思考:

  • 利用 OpenAI API 能实现什么产品?解决什么痛点?
  • 如何在现有产品上接入 OpenAI API,产生更高的价值?

第二点我在开始做一些尝试,但关于第一点,我用它来解决上述背景的需求:我做了一个 Mac 上的 Menu Bar 的翻译 app,并已经在 App Store 上线了。

Photon AI Translator

‎App Store 上的 Photon AI Translator

虽然也是「众多翻译 app」之中的一员,但它依然有自己的一些特色:

  • 纯 Menu Bar 的 Mac app,在你点击 Menu Bar 上的图标之前,它是不会有窗口的,也不会占用你的 Dock 栏的位置。Menu Bar 在 macOS 里始终位于顶部,抛开因为挖孔导致的 Overflow 问题没有被解决外,它是你能随手可达的地方——当然,Overflow 问题,我个人推荐使用 Bartender 4 进行隐藏和整理。
  • 支持翻译、词典、语法检查和提炼信息四种模式,你可以通过 ⌘ + 1-4 来快速切换到对应的模式
  • 翻译模式为直接翻译模式,你可以选择对应的目标语言进行翻译。翻译模式特别新增「App 多语言」模式,对于 Apple 平台或者 Android 开发者来说,你可以复制粘贴你的 localization.strings 或者 strings.xml 内容,会以字典的模式进行翻译——也就是,你不用担心你的 key 会被翻译成对应的语言。
  • 词典目前在英文语境下使用最佳,能给出一个单词的具体词典定义,如果它能用作名词、副词等,都会一并给出。
  • 语法检查仅支持英文,用于检查并返回修复的语法。
  • 提炼信息可以帮助你从一段文本里提炼总结,并以特定的目标语言输出。

当然,这一切都是 OpenAI 驱动,只不过 Prompts 是我自己调的。因此你需要一个自己的 API Key 才能访问——相信我,即便你不用此 app,学会使用 ChatGPT 以及注册好 OpenAI Platform,都会对你今后的工作效率有帮助。

目前仅支持 macOS 13 Ventura,你可以在 App Store 搜索并免费下载使用。

PhotonOpenAIKit 帮你的 app 快速接入 OpenAI

虽然 OpenAI 平台的 API 本身就可以直接通过 HTTP 请求来使用,但官方还是封装了 Python 的库以及一些提供了一些第三方库的 GitHub 参考。但可惜的是 Swift 版本的库目前还不支持 SSE 模式——你看官方 ChatGPT 的字是逐字出来的,是依靠这个模式来实现的:于是乎我又造了一个轮子,叫 PhotonOpenAIKit,来帮助你快速接入 OpenAI。

https://github.com/JuniperPhoton/PhotonOpenAIKit

此库目前仅支持 ChatCompletion,但配合上 GPT-3.5 模型,能满足很大部分的需求了。

更多详情和使用方式,请参考以上 GitHub 库的链接和 README。

做产品背后的一些思考

尽管这看起来像是一个关于 AI 和 ChatGPT 的「跟风」行为——坦白说确实有一方面的考虑在里面,如果现在你不接触多点这块的知识和消息,那么跟真正的互联网可能会慢慢产生信息差,这是从业人员害怕的一个事情。

但对于做的此 app 以及之前做的效率类 app MyerList 和 MyerTidy,我更多考虑的是:

用自己的技术和设计能力,做出最符合自己需求以及审美的工具。如果这同时也能解决潜在的一部分用户需求,那么就太好了,做多点用户体验上的包装以及优化,也希望他们用得舒服。

ChatGPT 以及 LLM 大型语言模型很厉害,它不是一蹴而就的产品,底层技术不是我们一般人或者开发者能学习得来。或许「调 API」是一个看上去没什么技术含量的工作,但「调 API 并用户(我们)带来实际的效率的提升」,也可能正是 OpenAI 平台开放 API 的一个初衷——但更何况,调 API 这事情本身也不是没有技术含量的工作,这里面太多细节和环节,都要做好,还是很花功夫的。

后记

在离职半年多后,我现在很难定义我是不是一个「独立开发者」——因为做的产品,并没有给我带来多少能让我生存的收入,更多的还是在用上班的钱,来体验不一样的「工作」。

之前在 Netflix 看到一部纪录片 Street Food: Asia,里面介绍了很多上了年纪还在做街边小吃的人,对他们来说——他们喜欢这个「工作」,这是一件能做到老的事情。在很多场合下,提起「上班」很多人都会头疼,但我从中感受到,上班跟工作不是一个事情的,根据使用 Photon AI Translator 词典功能,Work 的定义是:

Work (noun): activity involving mental or physical effort done in order to achieve a purpose or result.

只要你为自己的工作设定一个目标,只要完成了就应该是一件值得你高兴的事情,哪怕这个目标并不是通俗意义上的「挣钱」(虽然这是大多数人需要工作的目标)。

相关文章:

Photon AI Translator 和做产品的一些思考

近 4 个月内我一直在做 Apple 平台的产品,虽然从使用量来说「简体中文」用户是占多数,但我一直有做多语言的支持:英语、简体中文和繁体中文。习惯上 Google 翻译的我,基本上在使用 Xcode 过程中也会一直在浏览器开着 Google Trans…...

IPTV系统架构的分析与研究

1 引言   IPTV业务是伴随着宽带互联网的飞速发展而兴起的一项新兴的互联网增值业务,它利用宽带互联网的基础设施,以家用电视机和电脑作为主要终端 ,利用网络机顶盒(STB,Set -TopBox) ,通过互联网协议来传送电视信号.提供包括 电视节 目在 内…...

workerman开发者必须知道的几个问题

1、windows环境限制 windows系统下workerman单个进程仅支持200个连接。 windows系统下无法使用count参数设置多进程。 windows系统下无法使用status、stop、reload、restart等命令。 windows系统下无法守护进程,cmd窗口关掉后服务即停止。 windows系统下无法在一个…...

golang Gin实现websocket

golang使用 Gin实现 websocket,这里笔者重新搭建一个项目 1、创建项目安装依赖 项目名为 go-gin-websocket 在指定文件夹下,新建项目文件夹 go-gin-websocket 进入项目文件夹,打开cmd窗口,在项目(go-gin-websocket&a…...

冯·诺依曼体系结构与初始操作系统

目录 冯诺依曼体系结构 冯诺依曼体系结构图 内存 外存 网卡和磁盘 结构之间运算速度的差异 缓冲区 初始操作系统 概念 操作系统上边与下边分别有什么 从上到下依次顺序解析 用户 用户操作接口 系统调用接口 操作系统四项管理 驱动 硬件 冯诺依曼体系结构 冯诺…...

软件测试之黑盒测试的具体方法详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一.基于需求的设计方法二.等价类三.边界值四.判定表4.1 **关系**4.2 如何设计测试用例4.3 实际案例第一步第二步第三步第四步 五.正交排列5.1 什么是正交表5.2 …...

图形编辑器:历史记录设计

大家好,我是前端西瓜哥。今天讲一下图形编辑器如何实现历史记录,做到撤销重做。 其实就是版本号的更替。每个版本保存一个状态。 数据结构 要记录图形编辑器的历史记录,支持撤销重做功能,需要两个栈:撤销&#xff0…...

ubuntu22.04下挂载第二块硬盘

文章目录 一、查看硬盘情况二、找到nvme1n1三、挂载四、修改分区文件 一、查看硬盘情况 首先要查看一下系统识别出来的设备。也就是说,我希望知道,ubuntu到底发现了几块硬盘。用命令:lsblk 显示结果如下: 有两块硬盘&#xff1a…...

举例说明.net中in与out的作用与区别

-----作用 在 .NET 中,in 和 out 是用于泛型类型参数的修饰符,它们用于指定参数类型的协变性和逆变性。 - in 修饰符:表示这个泛型类型参数是协变的。也就是说,in 类型参数可以从较特殊的类型隐式转换为较通用的类型。例如&…...

Java常见的100道面试题(内附答案及代码示例)持续更新

什么是Java程序? Java程序是一组可执行的代码,由Java编译器编译生成,可以在Java虚拟机(JVM)上运行。 public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!&qu…...

策略设计模式知多少

目录 目标 概述 实现 目标 熟悉策略设计模式,了解策略设计模式的使用场景、具体实现。 概述 一、行为设计模式 行为设计模式是设计模式的一种类型。该类型的设计模式关注的重点在于对象的行为(通信和交互),而非对象的创建方…...

第三十九章 配置镜像 - 配置 ISCAgent - 在 UNIX Linux 和 macOS 系统上为非根实例启动 ISCAgent

文章目录 第三十九章 配置镜像 - 配置 ISCAgent - 在 UNIX Linux 和 macOS 系统上为非根实例启动 ISCAgent在 UNIX/Linux 和 macOS 系统上为非根实例启动 ISCAgent在 Microsoft Windows 系统上启动 ISCAgent 自定义 ISCAgent 第三十九章 配置镜像 - 配置 ISCAgent - 在 UNIX Li…...

嵌入式安卓开发:使用Camera2获取相机

文章目录 Camera2介绍Camera2的主要API类介绍CameraManager通过CameraManage获取Cameracharacteristics通过CameraManage获取CameraDevice从CameraDevice获取CameraCaptureSession预览效果 参考 Camera2介绍 从Android 5.0开始,Google 引入了一套全新的相机框架 Ca…...

阿里云g8i服务器Intel Xeon(Sapphire Rapids) Platinum 8475B

阿里云服务器ECS通用型实例规格族g8i采用2.7 GHz主频的Intel Xeon(Sapphire Rapids) Platinum 8475B处理器,3.2 GHz睿频,g8i实例采用阿里云全新CIPU架构,可提供稳定的算力输出、更强劲的I/O引擎以及芯片级的安全加固。阿里云百科分享阿里云服…...

设计模式——组件协作模式之观察者模式

文章目录 前言一、“组件协作” 模式二、Observer 观察者模式1、动机2、模式定义3、伪代码示例①、第一种方案,最朴素的方式②、第二种方案,重构使得遵循DIP原则:③、进一步的小优化:④、修改使得支持多个观察者: 4、结…...

观察者设计模式知多少

目录 目标 概述 实现 推设计模式 拉设计模式 被动观察者设计模式 目标 熟悉观察者设计模式,了解观察者设计模式的使用场景、具体实现(包括:推设计模式、拉设计模式、被动观察者设计模式)。 概述 一、行为设计模式 行为设…...

Flink之TaskManager内存解析

一、CK失败 Flink任务的checkpoint操作失败大致分为两种情况,ck decline和ck expire: (1)ck decline 发生ck decline情况时,我们可以通过查看JobManager.log或TaskManager.log查明具体原因。其中有一种特殊情况为ck cancel&…...

为何越来越多人不喜欢“试用期六个月”的公司?网友:感觉不靠谱

众所周知,任何一份工作都有试用期,一般是三月左右。但如果你遇到试用期达到半年的公司,你会不会进入? 近日,就有人遇到了此类公司,并对是否要进入该公司犹豫不决。他在论坛上发帖求助:大家是怎…...

单例模式的四种创建方式

前言 单例模式是日常开发中最常见的一种设计模式,常用来做为池对象,或者计数器之类的需要保证全局唯一的场景。 单例模式的目的是保证在整个程序中只存在一个对象实例,使用单例一个前提条件就是构造器私有化,不允许通过new 对象…...

Nginx+Keepalived 中的脑裂现象

如何解决和预防 NginxKeepalived 中会出现的脑裂现象? Nginx是一种高性能的Web服务器和反向代理服务器,可以处理大量并发请求。Keepalived是一种开源软件,用于实现IP负载均衡和故障转移。在Nginx和Keepalived结合使用时,可以通过将多个Ngin…...

Android端集成MiniCPM-V-2_6轻量化版本:移动端图像风格迁移App开发

Android端集成MiniCPM-V-2_6轻量化版本:移动端图像风格迁移App开发 1. 引言 你有没有想过,用自己的手机摄像头,就能实时看到眼前的世界变成梵高的《星空》或者莫奈的《睡莲》?这听起来像是科幻电影里的场景,但现在&a…...

BGV vs BFV:基于LWE的两大全同态加密方案,到底该怎么选?

BGV vs BFV:基于LWE的两大全同态加密方案技术选型指南 当隐私计算项目需要处理加密数据上的复杂运算时,全同态加密(FHE)方案的选择往往成为架构设计的核心决策点。作为第二代FHE方案的典型代表,BGV和BFV虽然同属基于L…...

Cogito-V1-Preview-Llama-3B开发:微信小程序智能客服对接实战

Cogito-V1-Preview-Llama-3B开发:微信小程序智能客服对接实战 最近有不少朋友在问,把大模型部署到服务器上之后,怎么才能让微信小程序用起来?今天我就以星图GPU平台上部署的Cogito-V1-Preview-Llama-3B模型为例,跟大家…...

从电网到实验室——10kW大功率电源的Psim仿真实战

基于Psim的Boost型 PFC移相全桥AC-DC电源设计仿真 1、前级电网输入220AC,50Hz,中间级母线电压为600V,后级600V输入,547V输出,电压可调,功率10kW 2、前级基于Boost电路PFC,平均电流控制&#xff…...

ZYNQ XADC保姆级教程:不写PL代码,用PS接口3分钟读取芯片温度电压

ZYNQ XADC极简实战:纯PS端3行代码监控芯片健康状况 刚拿到ZYNQ开发板时,我最先好奇的是这颗芯片的"生命体征"——它现在多少度?供电稳定吗?传统FPGA需要外接传感器才能获取这些数据,而ZYNQ内置的XADC模块让这…...

大模型数据治理终极指南:5个关键步骤实现高效生命周期管理

大模型数据治理终极指南:5个关键步骤实现高效生命周期管理 【免费下载链接】Foundations-of-LLMs 项目地址: https://gitcode.com/GitHub_Trending/fo/Foundations-of-LLMs 大模型数据治理是构建高质量AI系统的基石,对于确保模型性能、合规性和可…...

【ArkTS】编程规范

ArkTS 是 HarmonyOS 应用的默认开发语言,在 TypeScript(简称 TS)生态基础上做了扩展,保持 TS 的基本风格。通过规范定义,从而强化了开发期的静态检查和分析,提升了程序执行的稳定性和性能。 一、术语与定义 术语 缩略语 中文解释 ArkTS 无 ArkTS编程语言 TypeScript TS …...

3类被90%开发者忽略的农田图像噪声——基于ISO 17202-2标准的Python去噪实战手册

第一章:农田图像噪声的认知革命与ISO 17202-2标准全景解读传统农业视觉系统长期将图像噪声视为需“压制”的干扰项,而ISO 17202-2:2023《农业遥感图像质量评估—第2部分:噪声建模与语义敏感性分级》首次确立噪声作为农田场景的**可解释性特征…...

AI编程实战:如何用Cursor和Coze在1小时内完成文生图小程序开发

AI编程实战:如何用Cursor和Coze在1小时内完成文生图小程序开发 当产品灵感突然闪现,如何在最短时间内将它变成可交互的原型?传统开发流程中,从UI设计到API对接至少需要数天时间。而现在,借助AI编程工具链,我…...

企业Exchange邮箱配置失败?可能是Autodiscover服务出了问题,教你用微软官方工具排查

企业Exchange邮箱自动配置故障深度排查指南 引言 当企业用户或IT管理员遇到Outlook无法自动配置Exchange邮箱的问题时,往往意味着Autodiscover服务出现了异常。作为Exchange生态系统的核心组件,Autodiscover服务负责在客户端与服务器之间建立初始连接通…...