#experience #python #fastapi #nextjs #llm
🌐 文章链接
作者介绍了他在开发 Youtube 视频转录工具 YouTube Transcript Optimizer 后端时的一些经验。
1. 使用 FastAPI + SQLModel + SQLite
2. 仔细确定数据模型很重要
3. 仅用 FastAPI 处理重负载任务,其他后端功能由 NextJS 应用处理
4. FastAPI 应用的优化重点在于所有主要功能完全异步,文件和数据库访问也完全异步
5. 使用 faster-whisper 进行转录
6. 使用 LLM 时,注意分步请求,不要一次让 LLM 做太多事情,此处使用 OpenAI 或者 Anthropic 会更好,因为支持高并发请求
7. SQLite 需要正确配置 PRAGMAs,文章中提供了一组具体示例
8. 数据库必须自动备份,作者同时保存了所有生成文档及其元数据
9. 通过用户反馈和 LLM 进行质量控制
10. 有时手动处理比 LLM 有用,比如使用一些精心设计的正则来进行过滤
11. 有时候保护你的时间和理智比坚持纯粹的技术解决方案更为重要
12. Coding 的时候使用 LLM 来检查代码错误
13. 使用 Gunicorn + Nginx 来部署到生产环境
此外,作者在文末提到使用 Python 来完成所有的事情并不是最佳的解决方案,是时候学习 TypeScript, React, Zustand 等技术了。
作者介绍了他在开发 Youtube 视频转录工具 YouTube Transcript Optimizer 后端时的一些经验。
1. 使用 FastAPI + SQLModel + SQLite
2. 仔细确定数据模型很重要
3. 仅用 FastAPI 处理重负载任务,其他后端功能由 NextJS 应用处理
4. FastAPI 应用的优化重点在于所有主要功能完全异步,文件和数据库访问也完全异步
5. 使用 faster-whisper 进行转录
6. 使用 LLM 时,注意分步请求,不要一次让 LLM 做太多事情,此处使用 OpenAI 或者 Anthropic 会更好,因为支持高并发请求
7. SQLite 需要正确配置 PRAGMAs,文章中提供了一组具体示例
8. 数据库必须自动备份,作者同时保存了所有生成文档及其元数据
9. 通过用户反馈和 LLM 进行质量控制
10. 有时手动处理比 LLM 有用,比如使用一些精心设计的正则来进行过滤
11. 有时候保护你的时间和理智比坚持纯粹的技术解决方案更为重要
12. Coding 的时候使用 LLM 来检查代码错误
13. 使用 Gunicorn + Nginx 来部署到生产环境
此外,作者在文末提到使用 Python 来完成所有的事情并不是最佳的解决方案,是时候学习 TypeScript, React, Zustand 等技术了。