DEV社区综述文章列举AI应用开发的各类工具。内容广泛但深度有限,更多是导览性质而非深度指导。
过去十年,AI 世界的发展突飞猛进。
AI 无处不在,从语音助手到软件开发,如果我们正确使用它,它会大有裨益。
在这样的时代,开发 AI 应用利润丰厚,所以我在这里介绍 25 个开源项目,你可以用它们来构建自己的 AI 应用并将其提升到新的高度。
有一些令人兴奋的概念,比如使用语音合成与 3D 角色进行交互通信。请读到最后。
后面会有大量资源、文章、项目创意、指南等供你参考。
Taipy 是一个开源 Python 库,用于简便的端到端应用开发,具有 What-If 分析、智能管道执行、内置调度和部署工具等特性。
我确信大多数人可能不太理解,所以简单来说,Taipy 用于为基于 Python 的应用创建 GUI 界面并改进数据流管理。
你可以绘制数据集的图表,并使用 GUI 风格的滑块提供交互选项来操纵数据,同时享受其他有用的功能。
虽然 Streamlit 是一个受欢迎的工具,但在处理大型数据集时其性能会显著下降,使其在生产级使用中不够实用。相比之下,Taipy 在不牺牲性能的前提下提供简洁性和易用性。通过尝试 Taipy,你会亲身体验到它用户友好的界面和高效的数据处理能力。
在幕后,Taipy 利用各种库来简化开发并增强功能。
使用以下命令开始:
pip install taipy
让我们讨论最新的 Taipy v3.1 版本。
最新版本使得能够在 Taipy 的多功能部件对象中可视化任何 HTML 或 Python 对象。这意味着现在可以使用 Folium、Bokeh、Vega-Altair 和 Matplotlib 等库进行可视化。
这也为 Plotly Python 带来了原生支持,使绘制图表变得更加容易。
他们还使用分布式计算改进了性能,但最棒的是 Taipy 及其所有依赖项现在完全兼容 Python 3.12,所以你可以在使用 Taipy 进行项目开发时使用最新的工具和库。
你可以查看文档。
例如,你可以看到聊天演示,它使用 OpenAI 的 GPT-4 API 来生成对你消息的回复。你可以轻松修改代码以使用任何其他 API 或模型。
另一个有用的地方是 Taipy 团队提供了一个名为 Taipy Studio 的 VSCode 扩展,用来加速 Taipy 应用的构建。
你也可以使用 Taipy 云部署你的应用。
如果你想阅读博客以了解代码库结构,可以查看 HuggingFace 的《使用 Taipy 在 Python 中为你的 LLM 创建网页界面》。
尝试新技术通常具有挑战性,但 Taipy 提供了 10+ 个演示教程,包含代码和完整的文档供你参考。
例如,一些实时演示示例:
实时人脸识别
Taipy 在 GitHub 上有 7000+ 个 Star,处于 v3 版本,所以他们在不断改进。
要构建 AI 应用,你需要一个后端,Supabase 是一个优秀的后端服务提供商,能够满足这一需求。
使用以下 npm 命令开始(Next.js):
npx create-next-app -e with-supabase
这是你可以使用 CRUD 操作的方式:
import { createClient } from '@supabase/supabase-js'
// Initialize
const supabaseUrl = 'https://chat-room.supabase.co'
const supabaseKey = 'public-anon-key'
const supabase = createClient(supabaseUrl, supabaseKey)
// Create a new chat room
const newRoom = await supabase
.from('rooms')
.insert({ name: 'Supabase Fan Club', public: true })
// Get public rooms and their messages
const publicRooms = await supabase
.from('rooms')
.select(`
name,
messages ( text )
`)
.eq('public', true)
// Update multiple users
const updatedUsers = await supabase
.from('users')
.eq('account_type', 'paid')
.update({ highlight_color: 'gold' })
你可以查看文档。
你可以利用身份验证、实时数据、Edge Functions、存储等构建一个速度极快的应用。Supabase 应有尽有!
Supabase 还提供几个启动工具包,如与 LangChain 结合的 Nextjs、与 Stripe 结合的 Nextjs 或 AI 聊天机器人。
Supabase 在 GitHub 上有 63000+ 个 Star,拥有众多贡献者,超过 27000 个提交。
Chatwoot 连接电子邮件、网站实时聊天、Facebook、Twitter、WhatsApp、Instagram、Line 等常见的客户沟通渠道。这帮助你从单一仪表板跨多个渠道提供一致的客户体验。
这在多种情况下都很重要,比如当你围绕 AI 应用构建社区时。
你可以查看文档,了解广泛的集成选项,这样更容易管理整个生态系统。
他们拥有非常详细的文档,以及每个集成的快照示例,比如使用 WhatsApp Cloud API 的 WhatsApp 频道。你可以一键部署到 Heroku 或根据需要自托管。
他们在 GitHub 上有 18000+ 个 Star,处于 v3.6 版本。
你可以使用两个 React 组件将关键 AI 功能集成到 React 应用中。他们还提供内置的(完全可定制的)Copilot 原生 UX 组件,如 <CopilotKit />、<CopilotPopup />、<CopilotSidebar />、<CopilotTextarea />。
使用以下 npm 命令开始:
npm i @copilotkit/react-core @copilotkit/react-ui @copilotkit/react-textarea
这是你可以集成 CopilotTextarea 的方式:
import { CopilotTextarea } from "@copilotkit/react-textarea";
import { useState } from "react";
export function SomeReactComponent() {
const [text, setText] = useState("");
return (
<>
<CopilotTextarea
className="px-4 py-4"
value={text}
onValueChange={(value: string) => setText(value)}
placeholder="What are your plans for your vacation?"
autosuggestionsConfig={{
textareaPurpose: "Travel notes from the user's previous vacations. Likely written in a colloquial style, but adjust as needed.",
chatApiConfigs: {
suggestionsApiConfig: {
forwardedParams: {
max_tokens: 20,
stop: [".", "?", "!"],
},
},
},
}}
/>
</>
);
}
你可以查看文档。
基本想法是在数分钟内构建 AI 聊天机器人,这对基于 LLM 的全栈应用很有用。
OpenAI 拥有第一个令人印象深刻的用 DALL·E 生成图像的模型。
Craiyon/DALL·E mini 是尝试使用开源模型重现这些结果。
如果你想知道名称的由来,DALL-E mini 应母公司的要求被改名为 Craiyon,并在更易于访问的网页应用格式中使用类似的技术。
你可以在 Craiyon 上使用该模型。
使用以下命令开始(用于开发):
pip install dalle-mini
你可以查看文档。
你可以阅读《DALL-E Mini 详解》了解更多关于数据集、架构和所涉及算法的信息。
你可以阅读《最佳逼真 AI 图像和提示终极指南》以便更好地理解,并获得有用的资源。
DALL·E Mini 在 GitHub 上有 14000+ 个 Star,目前处于 v0.1 版本。
从初创公司到 NASA,Deepgram API 每天被用来转录和理解数百万分钟的音频。快速、准确、可扩展且经济高效。
它为开发者提供语音转文本和音频智能模型。
尽管他们提供免费增值模式,但免费层的限制足以让你开始使用。
可视化效果非常出色。你可以查看实时流响应或音频文件,并比较音频的智能级别。
你可以查看文档。
你也可以阅读 Deepgram 发布的示例博客《如何向你的 React 和 Node.js 项目添加语音识别》。
如果你想尝试 API 并灵活选择模型,请查看他们的 API Playground。
InvokeAI 是 Stable Diffusion 的实现,是开源的文本生成图像和图像生成图像工具。
它在 Windows、Mac 和 Linux 机器上运行,可在仅有 4 GB RAM 的 GPU 卡上运行。
该解决方案提供行业领先的 WebUI,通过 CLI 支持终端使用,并作为多个商业产品的基础。
你可以查看安装和硬件要求、如何安装不同的模型,以及最重要的自动安装说明。
令人兴奋的功能是能够使用另一个图像生成图像,如文档中所述。
InvokeAI 在 GitHub 上有将近 21000 个 Star。
Google 的 Gemini 和 OpenAI 都非常流行,但在这份列表中,我们重点关注 OpenAI。
如果你想了解更多,可以阅读 Medium 上的《使用 React 在 Web 中调用 Google AI Gemini API 🤖》。这篇文章简单直接、切中要点。
借助 OpenAI,你可以使用 DALL·E(根据文本描述创作原创、逼真的图像和艺术作品)、Whisper(语音识别模型)以及 GPT-4。欢迎在评论区告诉我们你对 Sora 的看法!
你可以从一个简单的 API 开始构建应用。
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What are some famous astronomical observatories?"}
]
)
你可以阅读相关文档。其中提供了极其丰富的选项,足以让你构建出非常酷的东西!
甚至 Stripe 也在使用 GPT-4 改善用户体验。
例如,你可以创建 Assistant 应用,并通过 API playground 更好地理解其工作方式。
如果你需要一份指南,可以阅读 Dzone 上的《将 ChatGPT 与 ReactJS 集成》。
顺便说一句,OpenAI 收购 Sora 是为了形成垄断。你怎么看?
DeepFaceLab 是制作 Deepfake 的顶级开源工具。
Deepfake 是使用深度学习篡改的图像和视频。它们经常用于替换图片或视频片段中的人脸,有时只是为了开玩笑,但也可能被用于恶意目的。
DeepFaceLab 使用 Python 构建,是一款强大的 Deepfake 工具。它可以替换媒体内容中的人脸,甚至能够消除皱纹和衰老迹象。
以下是你可以使用 DeepFaceLab 完成的一些事情。
人脸年轻化——YouTube。
你可以参考这份基础教程,了解如何有效使用 DeepFaceLab 完成这些操作。
你还可以在 YouTube 上观看使用这种 DeepLab 算法制作的视频。
遗憾的是,DeepFaceLab 中并没有一个“让一切恢复正常”的按钮,但针对你的具体需求学习其工作流程仍然非常值得。
尽管它已于 2023 年 11 月 9 日归档,但其 GitHub 星标数接近 44k+。凭借大量教程和可靠的算法,它仍然是构建 AI 应用的可靠选择。
Detectron2 是 Facebook AI Research 推出的下一代库,提供最先进的检测与分割算法。它是 Detectron 和 maskrcnn-benchmark 的继任者,并为 Facebook 上的多个计算机视觉研究项目和生产应用提供支持。
你可以观看 Facebook 开发者布道师制作的 YouTube 教程,学习如何在机器学习中使用 Detectron2。
Detectron2 旨在支持各种最先进的目标检测与分割模型,同时适应不断发展的前沿研究领域。
你可以阅读《如何开始使用》以及 Meta Blog,深入了解 Detectron 的目标。
旧版 Detectron 使用 Caffe,因此在后来的代码变更中,与结合了 Caffe2 和 PyTorch 的代码一起使用非常困难。为回应社区反馈,Facebook AI 发布了 Detectron2,作为一个经过更新且更易使用的版本。
Detectron2 内置了 DensePose 和全景特征金字塔网络等先进的目标检测算法。
此外,Detectron2 还可以执行语义分割和全景分割,从而更准确地检测并分割图像和视频中的对象。
与 Detectron 类似,Detectron2 不仅支持使用边界框进行目标检测和使用实例分割掩码进行分割,还能够预测人体姿态。
其 GitHub 仓库拥有 28k+ 个 Star,并已被 GitHub 上的 1.6k+ 名开发者使用。
Fastai 是一个面向实践者和研究人员的通用深度学习库。它为实践者提供了高层组件,使其能够在常见的深度学习任务中快速获得一流的结果。
与此同时,它也为研究人员提供了底层组件,以便进行实验并开发新的方法。
Detectron2 通过其分层架构,在易用性与灵活性之间取得了平衡。该架构将复杂的深度学习技术拆解为易于管理的抽象,并简洁地利用了 Python 的动态特性和 PyTorch 的灵活性。
它构建在由多层底层 API 组成的体系之上,这些 API 提供了可组合的构建模块。这样一来,希望重写部分高层 API 或添加特定行为以满足自身需求的用户,无须学习如何使用最底层的功能。
安装 pyTorch 后,使用以下命令即可开始:
conda install -c fastai fastai
你可以阅读相关文档。
它为初学者、中级用户和专家分别提供了不同的教程入口。
如果你希望为 FastAI 做出贡献,应当阅读其代码风格指南。
如果你更喜欢视频,可以在 YouTube 上观看 Jeremy Howard 的《第 0 课:面向程序员的实用深度学习(fastai)》。
其 GitHub 仓库拥有 25k+ 个 Star,并已被 GitHub 上的 16k+ 名开发者使用。
什么是稳定扩散?
稳定扩散是生成模型中使用的一种技术,尤其应用于文本生成图像任务。在这一过程中,文本描述中的信息会被逐步、平滑地传递至图像。
在潜在空间文本生成图像扩散模型中,稳定扩散确保文本描述中的信息能够在模型的潜在空间内保持一致地扩散或传播。这一扩散过程有助于生成符合给定文本输入的高质量逼真图像。
稳定扩散机制可以确保模型在生成过程中不会出现突然跳变或不稳定现象。希望这能解释清楚!
下载并使用 Stable Diffusion 生成样本的一种简单方式是使用 diffusers 库。
# make sure you're logged in with `huggingface-cli login`
from torch import autocast
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained(
"CompVis/stable-diffusion-v1-4",
use_auth_token=True
).to("cuda")
prompt = "a photo of an astronaut riding a horse on mars"
with autocast("cuda"):
image = pipe(prompt)["sample"][0]
image.save("astronaut_rides_horse.png")
你可以阅读相关研究论文,并进一步了解如何使用 Stable Diffusion 修改图像。
例如,这是输入图像。
这是稍微放大后的输出图像。
Stable Diffusion v1 是一种特定的模型配置,其扩散模型使用拥有 860M 参数的 UNet 和 CLIP ViT-L/14 文本编码器,并搭配下采样因子为 8 的自动编码器。该模型先在 256x256 图像上进行预训练,随后在 512x512 图像上进行微调。
其 GitHub 仓库拥有约 64k+ 个 Star。
为 Stable Diffusion 点亮 Star ⭐️
该项目需要 OpenCV 的 SFM(运动恢复结构)模块,因此你需要从源代码编译 OpenCV。
在 computer_code 目录中运行以下命令以安装 Node 依赖:
yarn install
yarn run dev // to start the web server.
你将获得一个用于访问前端界面的 URL。
打开一个单独的终端窗口,运行命令 python3 api/index.py 以启动后端服务器。该服务器负责接收摄像头视频流并执行动作捕捉计算。
其架构如下。
你可以观看这段 YouTube 视频了解 Mocap Drones 的工作原理,也可以阅读项目作者的博客。
你可以阅读相关文档。
这是一个较新的开源项目,其 GitHub 仓库拥有 900+ 个 Star。
这个模型与 Stable Diffusion 类似,但面向语音领域,功能强大且高度可定制。
该团队确保使用获得适当许可的语音录音,并将所有代码开源,因此该模型可安全用于商业应用。
目前,这些模型使用英文 LibreLight 数据集进行训练。
你可以进一步研究其架构。
你可以试听示例语音,并使用 Colab 亲自体验。
该项目相当新,在 GitHub 上拥有约 3k+ 个 Star。
为 Whisper Speech 点亮 Star ⭐️
eSpeak NG 是一款紧凑的开源文本转语音合成器,适用于 Linux、Windows、Android 及其他操作系统。它支持 100 多种语言和口音,以 Jonathan Duddington 创建的 eSpeak 引擎为基础。
你可以阅读它在各种系统上的安装指南。
对于类似 Debian 的发行版(例如 Ubuntu、Mint 等),可以使用以下命令:
sudo apt-get install espeak-ng
你可以查看支持的语言列表、阅读相关文档并了解其功能。
该模型会将文本转换为音素代码,这意味着它可能非常适合作为其他语音合成引擎的前端。
They have 2.7k+ 颗星在 GitHub 上,并且
我们都用过 ChatGPT,这个项目可以帮我们为任何 AI 聊天机器人搭建用户界面。少一份麻烦!
你可以阅读安装指南来安装 docker、supabase CLI 等其他工具。
你可以阅读文档并查看演示。
这在后台使用 Supabase(Postgres),所以我们之前讨论过它。
我没有讨论 Vercel AI 聊天机器人,因为相比之下它相当较新。
Chatbot UI 在 GitHub 上有大约 25k+ 颗星,所以它仍然是开发者为任何聊天机器人构建 UI 界面的首选。
这可以用于新的 GPT-4 API,为多个大型 PDF 文件构建 ChatGPT 聊天机器人。
该系统使用 LangChain、Pinecone、Typescript、OpenAI 和 Next.js 构建。LangChain 是一个框架,简化了可扩展 AI/LLM 应用和聊天机器人的开发。Pinecone 作为向量存储来存储嵌入和 PDF 的文本格式,以便之后能够检索相似文档。
你可以阅读包含克隆、安装依赖和设置环境 API 密钥的开发指南。
你可以看 YouTube 视频了解如何跟进和使用这个。
他们在 GitHub 上有 14k+ 颗星,仅仅 34 次提交。在你的下一个 AI 应用中试试!
Star GPT-4 & LangChain ⭐️
Amica 是一个开源界面,用于与 3D 角色进行交互式通信,具有语音合成和语音识别。
你可以导入 VRM 文件,调整语音以适应角色,并生成包含情感表达的回复文本。
他们使用 three.js、OpenAI、Whisper、Bakllava(用于视觉)等多种技术。你可以阅读 Amica 如何工作以及涉及的核心概念。
你可以克隆仓库并使用以下步骤开始:
npm i
npm run dev
你可以阅读文档并查看演示,真的相当棒 :D
你可以观看这个关于它能做什么的短视频。
Amica 使用 Tauri 来构建桌面应用。别担心,我们稍后在此列表中会介绍 Tauri。
他们在 GitHub 上有 400+ 颗星,看起来很容易使用。
Hugging Face Transformers 提供对最先进的预训练模型和算法的轻松访问,用于文本分类、语言生成和问答等任务。该库建立在 PyTorch 和 TensorFlow 之上,允许用户以最少的努力将高级 NLP 功能无缝集成到其应用中。
凭借庞大的预训练模型集合和支持社区,Hugging Face Transformers 简化了基于 NLP 的解决方案的开发。
这些模型可以被部署来执行与文本相关的任务,如文本分类、信息提取、问答、摘要、翻译和文本生成,支持 100 多种语言。它们还可以处理与图像相关的任务,如图像分类、对象检测和分割,以及与音频相关的任务,如语音识别和音频分类。它们还可以在各种模态上执行多任务处理,包括表格问答、光学字符识别、从扫描文档中提取信息、视频分类和视觉问答。
你可以看到许多可用的模型。
你可以浏览文档了解完整的目标和示例,展示你可以执行的各种任务。
例如,使用管道的一种方式是进行图像分割。
from transformers import pipeline
segmenter = pipeline(task="image-segmentation")
preds = segmenter(
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
)
preds = [{"score": round(pred["score"], 4), "label": pred["label"]} for pred in preds]
print(*preds, sep="\n")
Transformers 由三个最广泛使用的深度学习库支持,即 Jax、PyTorch 和 TensorFlow,它们之间有无缝集成。这种集成使得能够轻松使用一个库训练模型,然后用另一个库加载它们进行推理。
他们在 GitHub 上有大约 120k+ 颗星,被大量 142k+ 开发者使用。试试吧!
Star Hugging Face Transformers ⭐️
Llama 2 是由 Facebook Research 开发的尖端技术,它赋予各种规模的个人、创意工作者、研究人员和企业能力,以负责任地使用大型语言模型进行实验、创新和扩展其想法。
最新版本包括预训练和微调的 Llama 语言模型的模型权重和起始代码,参数范围从 7B 到 70B。
按照安装指南开始,涵盖以下步骤。
克隆并下载仓库。
安装所需依赖。
从 Meta 网站注册并下载模型。
运行提供的脚本来下载模型。
使用提供的命令在本地运行所需的模型。
你可以看这个 ZeroToMastery 的 YouTube 视频了解什么是 llama。
你还可以在 Hugging Face 和 Meta 官方页面上看到模型列表和更多信息。
Ollama 基于 llama,它在 GitHub 上有 50k+ 颗星。查看文档并使用此模型进行更多研究。
Fonoster Inc. 研究了一个创新的可编程电信栈,它将允许企业使用完全基于云的实用程序将电话服务与互联网连接。
有各种方式可以根据你想要实现的目标来开始。
使用以下 npm 命令开始:
npm install @fonoster/websdk
// CDN 也可用
例如,这是你如何使用 Fonoster 与 Google Speech APIs 的方式。(你