啄木鸟:开源个性化多邻国
4 分•作者: arbayi•5 个月前
大家好,HN!
6 个月前,我在这里分享了我的项目(https://news.ycombinator.com/item?id=42770200),并获得了一些非常有用的反馈。后来生活中的事情让我分身乏术,没能投入太多精力,但现在我和我的朋友希望制作一个移动版本来赚取一些外快。由于这基本上是一个 GPT 包装器,我想先清理一下开源版本。
回顾 6 个月后的代码,真是令人尴尬。后端一团糟,而且真的很难设置。我之前添加了身份验证,这对于一个开源项目来说毫无意义,所以我删除了它,并且我还切换到 MongoDB 作为数据库。我还想尝试 OpenAI 新的 Agent SDK,用 TypeScript 编写,这帮助我更好地组织了后端代码。
然后我解决了我认为的主要问题——这个应用程序根本没有帮助人们发现新单词。用户必须自己创建所有列表,并手动添加每一个单词。我添加了一些模板列表来帮助人们入门,但我意识到这并不适用于所有人。
我看到了一个名为“Say What You See”的 Google 实验,由 Jack Wild 制作,人们会看 AI 图像并尝试猜测提示词。我想这可能对语言学习有所帮助。所以我尝试制作了一个我称之为“Vision Garden”的东西——用户选择一个语境,查看图像,描述他们所看到的,然后应用程序尝试建议他们可能不知道的词汇。然后,如果他们愿意,他们可以将这些单词添加到他们的列表中。
我还添加了一个简单的“获取新单词”功能,用户可以选择一个主题和难度级别,应用程序会向他们展示单词,并询问他们是否知道这些单词。如果他们不知道,它会尝试用例子和图片来解释。
现在,每个单词都有自己的页面,用户可以在其中查看示例,查找相似的单词,并生成图像。
为了练习,我添加了多种练习类型——多项选择、填空、匹配、判断正误和句子补全。用户可以在他们的设置中配置他们想要的类型。
由于之前有人要求支持不同的语言,我尝试让用户可以使用任何语言作为基础来学习任何语言。
在使用 OpenAI 的 Agent SDK 进行实验时,我注意到添加语音功能是如此容易。现在,用户可以就他们的词汇与应用程序对话。语音助手知道他们正在学习什么,并尝试帮助发音。它甚至可以在对话过程中将新单词添加到他们的列表中。
我还添加了 ElevenLabs 用于音频发音。
还有一个“轻松阅读”功能,它尝试使用用户列表中的单词生成阅读段落,这样他们就可以在语境中看到他们的词汇。
我知道这仍然只是一个围绕现有 AI 工具的包装器,但我希望它可能对一些希望以更互动的方式学习词汇的人有所帮助。我希望有一种方法可以简单地托管这个版本,人们可以使用他们的 ChatGPT 订阅,在我找到方法之前,尝试该应用程序的最简单方法是克隆存储库并使用 OpenAI API 密钥运行。我接下来计划的步骤是支持其他 LLM,由于 OpenAI Agent SDK,它已经在代码中可用,但我需要让它更清晰,并且我还想使用本地解决方案使这个应用程序完全免费。
我很乐意听到一些建议和批评。我真的希望人们使用这个应用程序,在他们自己的机器上托管,在他们的手机上使用或创建他们自己的版本。词汇很难,我也有这个问题,我真的希望有一个解决方案 :)
存储库在这里:https://github.com/baturyilmaz/wordpecker-app
演示在这里:https://www.youtube.com/watch?v=jS8r7J65fXY
查看原文
Hello HN!<p>6 months ago I shared my project here (https://news.ycombinator.com/item?id=42770200) and got some really helpful feedback. Life got in the way and I couldn't work on it much, but now my friend and I are hoping to make a mobile version to earn some side income. Since this is basically a GPT wrapper, I thought I should clean up the open source version first.<p>Looking back at my code after 6 months was embarrassing. The backend was a complete mess and really hard to set up. I had authentication which made no sense for an open source project, so I removed that and I also switched to MongoDB for DB. I also wanted to try OpenAI's new Agent SDK in TypeScript, which helped me organize backend code better.<p>Then I tackled what I think was the main problem - the app didn't help people discover new words at all. Users had to create all the lists themselves and manually add every single word. I added some template lists to help people get started, but I realized that wouldn't work for everyone.<p>I saw this Google experiment called "Say What You See" By Jack Wild where people look at AI images and try to guess the prompt. I thought maybe this could work for language learning. So I tried making something I call "Vision Garden" - users pick a context, look at images, describe what they see, and the app tries to suggest vocabulary words they might not know. Then they can add those words to their lists if they want.<p>I also added a simple "Get New Words" feature where users pick a topic and difficulty level, and the app shows them words and asks if they know them. If they don't, it tries to explain with examples and images.<p>Each word now has its own page where users can see examples, find similar words, and generate images.
For practice, I added multiple exercise types - multiple choice, fill-in-the-blank, matching, true/false, and sentence completion. Users can configure which types they want in their settings.
Since it was asked for different languages before, I tried to make it so users can learn any language using any language as their base.<p>While experimenting with OpenAI's Agent SDK, I noticed it was so easy to add voice features. Now users can talk to the app about their vocabulary. The voice agent knows what they're learning and tries to help with pronunciation. It can even add new words to their lists during conversation.
I also added ElevenLabs for audio pronunciation.
There's also a "Light Reading" feature that tries to generate reading passages using words from the user's lists, so they can see their vocabulary in context.<p>I know it's still just a wrapper around existing AI tools, but I'm hoping it might be useful for some people who want to learn vocabulary in a more interactive way. I wished there was a way to simply host this version and people can use it with their ChatGPT subscription, until I figure a way, the easiest way to try the app is cloning the repository and running with OpenAI API Key. Next steps I'm planning is to support other LLMs, it's already available in the code thanks to OpenAI Agent SDK but I need to make it more clear and I also want to make this app fully free using local solutions.<p>I'd love to hear some suggestions, criticisms. I really wish people to use this app, host on their own machines, use on their mobile or create their own versions. Vocabulary is hard, and I have this problem and I really want to have a solution for it :)<p>The repository is here: https://github.com/baturyilmaz/wordpecker-app<p>The demo is here: https://www.youtube.com/watch?v=jS8r7J65fXY