WordPecker:开源个性化的Duolingo

4作者: arbayi30 天前原帖
你好,HN!<p>六个月前,我在这里分享了我的项目(https://news.ycombinator.com/item?id=42770200),得到了很多有用的反馈。生活中发生了一些事情,我没能继续推进这个项目,但现在我和我的朋友希望制作一个移动版本,以赚取一些额外收入。由于这个项目基本上是一个GPT的封装,我想先清理一下开源版本。<p>回顾六个月前的代码,我感到很尴尬。后端代码一团糟,设置起来非常困难。我有一个身份验证功能,但对于一个开源项目来说毫无意义,所以我把它去掉了,并且将数据库切换到了MongoDB。我还想尝试OpenAI的新Agent SDK,使用TypeScript,这帮助我更好地组织了后端代码。<p>然后我解决了我认为的主要问题——这个应用根本没有帮助用户发现新单词。用户必须自己创建所有列表,并手动添加每一个单词。我添加了一些模板列表来帮助用户入门,但我意识到这并不适合所有人。<p>我看到一个名为“Say What You See”的谷歌实验,由Jack Wild制作,参与者查看AI生成的图像并尝试猜测提示。我想,也许这可以用于语言学习。因此,我尝试制作一个我称之为“视觉花园”的东西——用户选择一个上下文,查看图像,描述他们所看到的内容,应用会尝试建议他们可能不知道的词汇。然后,如果他们愿意,可以将这些单词添加到他们的列表中。<p>我还添加了一个简单的“获取新单词”功能,用户选择一个主题和难度级别,应用会向他们展示单词并询问他们是否认识。如果他们不认识,应用会尝试用例子和图像进行解释。<p>现在每个单词都有自己的页面,用户可以查看例子,找到相似的单词,并生成图像。为了练习,我添加了多种练习类型——选择题、填空题、匹配题、判断题和句子完成题。用户可以在设置中配置他们想要的练习类型。由于之前有人要求支持不同语言,我尝试让用户可以使用任何语言作为基础来学习任何语言。<p>在尝试OpenAI的Agent SDK时,我注意到添加语音功能非常简单。现在用户可以与应用进行对话,讨论他们的词汇。语音助手知道他们正在学习的内容,并尝试帮助他们发音。它甚至可以在对话中将新单词添加到他们的列表中。我还添加了ElevenLabs用于音频发音。<p>还有一个“轻松阅读”功能,尝试使用用户列表中的单词生成阅读段落,以便他们可以在上下文中看到自己的词汇。<p>我知道这仍然只是现有AI工具的一个封装,但我希望它能对一些希望以更互动方式学习词汇的人有所帮助。我希望能有一种简单的方法来托管这个版本,让人们可以使用他们的ChatGPT订阅,直到我找到方法为止,尝试这个应用的最简单方式是克隆代码库并使用OpenAI API密钥运行。接下来的计划是支持其他大型语言模型,感谢OpenAI Agent SDK,这已经在代码中可用,但我需要让它更清晰,同时我也希望这个应用能够完全免费,使用本地解决方案。<p>我很想听听大家的建议和批评。我真的希望人们能使用这个应用,在自己的机器上托管,手机上使用或创建自己的版本。词汇学习很难,我也有这个问题,我真的想找到解决方案 :)<p>代码库在这里:https://github.com/baturyilmaz/wordpecker-app<p>演示在这里:https://www.youtube.com/watch?v=jS8r7J65fXY
查看原文
Hello HN!<p>6 months ago I shared my project here (https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=42770200) and got some really helpful feedback. Life got in the way and I couldn&#x27;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&#x27;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&#x27;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&#x27;t work for everyone.<p>I saw this Google experiment called &quot;Say What You See&quot; 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 &quot;Vision Garden&quot; - 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 &quot;Get New Words&quot; feature where users pick a topic and difficulty level, and the app shows them words and asks if they know them. If they don&#x27;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&#x2F;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&#x27;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&#x27;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&#x27;s also a &quot;Light Reading&quot; feature that tries to generate reading passages using words from the user&#x27;s lists, so they can see their vocabulary in context.<p>I know it&#x27;s still just a wrapper around existing AI tools, but I&#x27;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&#x27;m planning is to support other LLMs, it&#x27;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&#x27;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:&#x2F;&#x2F;github.com&#x2F;baturyilmaz&#x2F;wordpecker-app<p>The demo is here: https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=jS8r7J65fXY