由AI生成的一个人物在晚上编程的夜景图片
在上一篇文章中,我写了一篇关于初学者的AI学习路径的文章,尝试解释其工具和在日常生活中的任务应用。
这次,我们可以说是来了个急转弯向左。
想象自己从头开始构建、部署甚至变现 SaaS 应用程序——全部靠自己,但不知道从哪里开始。这篇文章主要是给初级开发者准备的,介绍了些关键概念、工具和策略,帮助你入门并上手。
像往常一样,我把文章分成了几个大的类别和范畴,这些类别和范畴并不意味着需要依次阅读,所以你可以随意浏览并跳过已熟悉的概念。然而,基于我的经验,我强烈建议你在独自开发一个完整的SaaS应用之前,先试着理解每个类别的基本概念。
1 大语言模型(LLMs)了解大型语言模型(LLMs)的一个很好的开始可能是 OpenAI ChatGPT 模型的创作者之一 Andrej Karpathy 的传奇视频,
花一个小时彻底了解不仅Transformer模型是什么,而且大语言模型是如何构建的,这绝对值得一看,如果你将来决定自己动手并且有足够的资源。
LLM API 提供商及其功能特性一旦你对大规模语言模型(LLM)及其最常见的用途——对话式信息生成有了基本的理解,你就可以开始探索大型 LLM 提供商的 API。从尝试不同的 API 开始入手,以了解它们的功能和潜在应用。本文撰写时,既有商用的也有开源的模型提供商提供 API,因此下面的列表可能不完整,但它应该能让你大致了解当前的情况。
概念: 大多数提供大型语言模型的公司通过API按使用量计费,提供多种不同模型。这些模型通常分为嵌入模型、文本生成模型(文本到文本)、语音转文本、文本到图像等类别,并且通常根据模型大小定价,模型越大,计算资源需求越高,价格也越高。此外,大多数提供商还提供一个试用平台,您可以在其中尝试不同模型的提示,查看结果,并调整参数如温度等。
OpenAI: 以其先进的模型如GPT-4而闻名,提供强大的API集成。在过去的一段时间里,它增加了一些构造,这些构造变得越来越复杂,让人感到困惑。它有一个组织(org)和项目,并在每个级别上进行计费。你可以通过组织和项目来分配用户和密钥。他们还提供了助理API(类似于我们稍后将讨论的代理)和实时API,可以构建能够接收语音并在几毫秒内返回音频或文本结果的模型。请注意,目前实时API可能是最贵的。
AWS 和 Google — AWS(Bedrock)和 Google(Vertex AI)都提供了以下功能。一个模型仓库,你可以选择自己的模型,对其进行微调,部署这些模型,并将其连接到工具或 API。AWS Bedrock 还提供了代理(Agent)和代理编排(Agent Orchestration)的概念,可以用来构建类似微服务的自主 AI 应用。
我还应该提到,谷歌的新AI Studio(AI工作室)现在有了新工具,可以通过浏览器“看到”和“听到”你(当然,这需要你的同意),这样你可以创建围绕训练或自动化重复任务的应用程序,而无需复杂的自动化流程。
虽然 AWS 确实有自己的大模型,但它主要提供的是 Anthropic 的模型,这些模型可能在编程任务上表现最佳。Google 在 2024 年 12 月发布了 Gemini 和 Flash 这两款模型,这些模型与 Claude 3.5 处于同一水平,但价格更实惠。
Anthropic: 说起 Claude,我最喜欢的大型语言模型提供商是 Anthropic,它有三个基于大小的模型类别——Haiku(最小)、Sonnet(中等大小)和 Opus(大型)。其中,Sonnet 3.5 是生成代码能力最强的之一。此外,它最近新增了两项突破性功能——计算机使用工具插件和模型上下文协议(MCP)服务器。通过这些 API,开发者现在可以使用这些 API 构建应用程序,利用浏览器为用户执行任务。
Hugging Face: 这是目前为止,当你寻找、微调和部署你自己的开源模型到私有实例时,最有效的平台。你可能会选择这样做,因为对于某些任务和应用场景,你需要更小、更便宜且私有托管的模型。根据行业基准测试,Meta 公司的 Llama 系列模型是最好的。
本地运行模型: 最后,我要说的是,如果你和我一样,有时会没有互联网,比如在长时间飞行中,你应该考虑本地运行模型。我最喜欢的两个软件工具是 Ollama 和 LMStudio。这两个工具都允许你下载模型并在本地运行,就像调用任何其他大型语言模型一样,你可以从你的代码中调用它们。不过,我需要说明的是,如果你想运行超过32B参数的模型,你需要一台性能较好的笔记本电脑,配备足够强大的GPU和内存。
每个供应商都有适用于不同场景的独特功能。比较成本、调整选项和可扩展性将帮助你为项目选择合适的供应商。
函数调用(点击这里了解更多信息)现代的大语言模型正在发展,可以直接处理结构化的API调用,这使得像预约、查询数据库或管理工作流等任务的自动化变得更加无缝顺畅。函数调用为AI与传统API之间搭建了桥梁,使集成更加直观和易于理解。
调整和部署开源大语言模型对于希望定制化开发的开发者来说,调优开源大语言模型是一次变革。比如LLaMA、Falcon和GPT-J这样的模型,使开发人员能够开发特定领域的应用。Hugging Face和LangChain等工具简化了调优和部署流程,从而实现高效的扩展。
2, 代理人 你知道什么是代理吗?去年,OpenAI以及其他模型提供商发布的一个功能是函数调用。这一功能让大型语言模型(LLM)能够调用应用程序中的某个函数,从而运行代码,使其具有了“代理”功能。现在,这一功能已经发展成为工具,你可以将多个工具整合在一起,并将其与特定的大语言模型关联,从而形成代理模型。如果你想了解更多关于这方面的内容,可以在《企业AI应用的7个因素》这篇文章中了解,链接如下 -> https://medium.com/madhukarkumar/the-7-factor-enterprise-ai-app-4528d02d0e83
代理框架(Agent 框架)下面列出了几个在 Python 和 JS/TS 中通过简单的字典接口来构建 Agent 的框架。选择时,我建议选择一个能够以确定性和可控的方式编排 Agent 的运行流程,并具备跟踪和调试功能的框架。
- LangChain 和 LangGraph: 这个框架拥有非常全面的功能集,随着时间的推移,它变得不再像以前那样简单,所以请准备好学习曲线。不过,它有一个丰富的用户社区,文档也非常出色。
- Autogen: Autogen 最初由微软发布,第一个版本以及 Autogen 工作室提供了一个非常有吸引力的平台来构建代理程序。之后,最初的创始人离开了微软,现在有两个不同的 Autogen 版本,这会使你在选择长期的企业级 AI 方案时感到困惑。
来自Github的Autogen Studio截图
- CrewAI: 这个框架在协作多代理环境中表现出色,但我对它的使用经验不多。不过,我听说其他开发者认为这是一个不错的框架。
- OpenAI Swarm: 这可能是开始构建简单代理和构建图和代理工作流最简单的方法。如果你有兴趣了解更多,可以阅读我关于使用Swarm构建高级RAG启动套件的文章 -> https://medium.com/madhukarkumar/how-to-build-a-multi-agent-rag-system-mars-with-openai-swarm-b6eb8a0ffc4a
- AWS Bedrock: AWS Bedrock 可以用来构建基于UI的代理和工作流,功能强大。不过,你需要了解AWS生态系统,包括IAM和权限,才能开始使用。如果你对AWS平台比较熟悉,那么这就是你应该开始的地方。
- Llamaindex: 这是另一个很好的平台,尤其适合如果你需要一个通用层来与多个数据源(如支持SQL、JSON、向量和精确关键词匹配的SingleStore)进行交互的话。
当然,还有其他框架可用,根据你的需求来选。这些框架会帮助你了解这一领域,让你对这个空间有更广泛的理解。
- 增强检索生成 (RAG)
RAG 结合了大型语言模型的强大功能与实时、特定领域的数据检索能力,以根据提示响应查询或采取行动,这些提示基于大型语言模型没有接触过的或未在其训练过程中使用到的信息。这样可以确保 AI 输出既准确又具有上下文相关性,尤其是在企业环境中,有大量的数据未被大型语言模型用来训练。应用场景包括个性化客户支持、动态内容生成和实时信息获取。
关于向量和语义搜索的全部从根本上说,RAG(检索增强生成模型)涉及在结构化数据(如JSON或SQL数据)和非结构化数据(比如PDF文件、图片和视频等)中进行搜索。对于非结构化数据,通常将其拆分成重叠的片段,然后将这些片段转换成向量,这些向量代表了这些对象在多维空间中的浮点值。例如,“狗跳过干草堆”可能被转换为(0.234,1.343,2.343,1.334……)。这些向量通常会被存储在内存中,用于某些短暂的应用场景,或者存储在向量数据库中。要搜索向量,首先将查询转换为嵌入向量(使用嵌入模型),然后执行语义搜索,例如使用点积运算来查找数据库中与查询相似的对象,最后将这些片段的数据作为上下文传递给LLM。
你也可以看看我去年写的更详细的矢量数据库对比分析——点击这里了解更多信息。
数据库和数据策略在RAG(检索增强生成模型)中的应用正如你所能想象的,当你需要存储大量向量时,你需要思考如何存储和检索它们,在企业里,你还需要考虑如何检索其他类型的数据。市面上既有专注于向量存储的开源和商用数据库,比如 Pinecone、Weaviate、Mivius 等,但如果你在寻找能够存储并检索各种类型的数据(如 SQL、JSON、向量等)的数据库,可以考虑使用 SingleStore、Elastic 或者 AWS 的 OpenSearch 等。
一旦你掌握了RAG的基础知识,你就可以继续探索一些相关的话题。
- RAG功能的高级特性——https://medium.com/madhukarkumar/secrets-to-optimizing-rag-llm-apps-for-better-accuracy-performance-and-lower-cost-da1014127c0a.
- 多代理RAG系统——https://medium.com/madhukarkumar/how-to-build-enterprise-ai-apps-with-multi-agent-rag-systems-mars-f922f69f59ba.
- 增强知识检索(KAG)——https://github.com/OpenSPG/KAG?tab=readme-ov-file.
我们现在来谈谈下一个话题,如何利用AI实现编码和开发效率大幅提升。你可能不需要其中所有的工具,但我依然列出了这些工具,这样你可以根据不同项目、应用场景和需求来选择合适的工具。
4 开发 编程工具的发展: 编程工具的进化真是难以置信,在过去两年里,AI编程助手似乎经历了大约十年的变化。最初,我们有了类似微软的Co-pilot这样的工具,它们帮助完成代码补全。但现在我们已经转向了两个VS Code IDE,这些IDE不仅能够完成代码补全,还可以与它们进行对话,讨论代码,并且它们还拥有能够代表你执行操作的代理交互,比如创建新文件,运行终端命令,包括安装新库和包。这些工具分别是Cursor和Windsurf。这两个工具还提供了使用单独文件或将整个代码库作为上下文的选择能力。
我非常推荐下载这两个产品的免费版本,并在不同的用途中试试看。
我也应该提到,Claude 以及其生成的代码和小型应用在生成代码和小型应用方面也非常出色,你可以在浏览器中测试这些应用,然后将它们引入你的代码库以进一步迭代。现在,无论是 OpenAI 还是 Claude 都可以帮助创建 Mermaid 基础的架构和流程图,这使得迭代应用更加直观和容易。
我想补充一点,这里有一种新兴的趋势,即一些工具开始承担初级开发者的全部工作,费用从每月500美元到4000美元不等(这不是误打)。使用这些工具,你可以创建功能并要求它们实现这些功能,工具会进行Pull Request并构建完整功能(每周大约两到三个),提交代码和文档。这些工具包括Devin(具有一个不寻常的Slack集成功能)和Tempo Labs(基于浏览器的界面设计)。
5. 用户界面和开发工具如果你正在构建一个全栈应用程序,依赖视觉设计师先构建用户交互,再做线框图和界面的旧时代已经过去了。如果你想独立完成应用的线框图和界面,这里有一些你应该熟悉并尝试的工具。
- v0.dev — 来自 Vercel 的工具,你可以上传图片、截图或链接到 Figma 设计的网址,或者给出描述,它会为你生成整个界面,并提供 React 组件的源代码。更棒的是,你还可以在设计中选择对象并用 v0 来迭代修改,最后会生成一个 npx 命令,以便在你的 React 项目中安装该特定组件。
- Bolt.new — 由 Stackblitz 构建的 Bolt.new 不仅允许你基于提示构建视觉屏幕,还可以构建整个应用程序。
- Lovable.dev — 与 Bolt.new 类似,此工具还允许你在设计中选择单独的对象并使用提示进行迭代。
- UI 屏幕和线框图 — 最后,如果你只是想生成线框图和用户交互设计和屏幕,你还可以了解和使用 uizard.io、relume 和 tempo labs 等工具。
- 除了 UI 相关工具外,我还发现了一些节省时间的其他 AI 工具。例如,我使用 Openrouter 创建一个 API,我可以在所有地方使用它,而不是不断管理 OpenAI、Anthropic 和其他 LLM 的密钥。我还使用 SingleStore 的 SqRL 机器人来生成 SingleStore 的 SQL 查询。此外,我有时也会使用 Warp,这是一个基于 Mac 的终端应用程序,你可以在其中提供英语指令,它会找到并运行相应的终端命令。
- 最后,如果我不提到 Claude 的模型上下文协议(MCP)服务器,那我会失职。你可以在这里了解更多:这里。
- 这是一个通过 Claude Desktop 自动化日常任务的出色工具。如果你想了解如何通过 webhook 和其他触发器以低代码的方式在不同应用之间自动化任务,我强烈推荐你查看开源工具 n8n — n8n.io,它拥有丰富的连接器和代码片段生态系统,使后端工作变得更加简单。
在这篇文章中,我们探讨了日常开发人员生活中可以做的事情的一些广泛类别,并了解了一些工具和资源,以帮助你从2025年开始成为AI优先的开发人员。如果你觉得还有其他有用的资源或工具,欢迎分享,尤其是那些我可能遗漏的。
✌️ 赞
共同学习,写下你的评论
评论加载中...
作者其他优质文章