65.9K
CodeProject 正在变化。 阅读更多。
Home

CodeProject.AI 服务器:轻松实现 AI。

starIconstarIconstarIconstarIconstarIcon

5.00/5 (95投票s)

2022 年 1 月 16 日

16分钟阅读

viewsIcon

7065265

downloadIcon

761786

版本 2.6.5。我们快速、免费、自托管的人工智能服务器,适用于任何平台、任何语言

预发布

快速链接

CodeProject.AI 服务器:人工智能服务器

适合那些希望将 AI 功能集成到其应用程序中,而无需编写 AI 功能或处理确保一切设置正确的极其繁琐任务的人。CodeProject.AI 服务器为您管理 MLOps。

将 CodeProject.AI 服务器视为数据库服务器:您安装它,它在后台运行,并通过简单的 API 为任何应用程序提供 AI 操作。AI 操作由即插即用的模块处理,这些模块可以使用任何语言、任何堆栈轻松创建,只要该堆栈在主机上运行即可。Python、.NET、Node - 任何适合您的。

CodeProject.AI 服务器作为 Windows 服务、Linux 下的 systemd 或 macOS 上的启动项运行。或者,有多个适用于 x64、arm64 和 CUDA 启用的系统的 Docker 镜像。任何可以发出 HTTP 请求的语言都可以访问该服务,并且服务器不需要外部互联网连接。您的数据保留在您的网络中。

Windows macOS macOS-arm64 Ubuntu Debian Raspberry Pi Orange Pi Jetson Nano Docker

它做什么?

CodeProject.AI 服务器的仪表板

目前 CodeProject.AI 服务器包含提供以下功能的 AI 模块:

  • 对象检测(使用 YOLO 的 Python 和 .NET 版本,以及一个超轻量级的 Tensorflow-Lite 模块,非常适合 Raspberry Pi 和 Coral USB 棒)
  • 人脸检测和识别
  • 文本处理,如情感分析和摘要
  • 图像处理,如背景移除、背景模糊、卡通化和分辨率增强
  • 模型训练,包括用于 YOLO 对象检测的数据集获取

如何使用?

安装服务器并开始调用 API。就这么简单。

指南、帮助、常见问题解答

CodeProject.AI 服务器 Home Assistant Blue Iris

CodeProject.AI 服务器的 Explorer 正在运行

我们为什么构建 CodeProject.AI 服务器

  • AI 编程是每个开发人员都应该了解的

    我们想要一个有趣的开源项目,可以用来帮助教导开发人员并让他们参与到 AI 中来。我们将使用 CodeProject.AI 服务器作为文章和探索的焦点,使其学习 AI 编程变得有趣且轻松。我们希望您的贡献!

    我们希望您的贡献!

  • AI 编码示例涉及的组件太多

    您需要安装软件包、语言和工具扩展,然后是更新和库(但需要版本 X,而不是版本 Y),然后您必须配置路径和... 哦,您想在 Windows 而不是 Linux 上运行?在这种情况下,您需要... 都太难了。CodeProject 抱怨了很多。

    CodeProject.AI 服务器包含您需要的一切,在一个安装程序中。CodeProject.AI 服务器还提供了一个安装脚本,可以设置您的开发环境,让您只需点击几下即可开始调试。

  • AI 解决方案通常需要使用云服务

    如果您信任云提供商,或了解计费结构,或可以确保您不会发送敏感数据或超出免费套餐,那没问题。如果您有家里的网络摄像头,或者无法弄清楚 AWS 会收费多少,那就不太好了。

    CodeProject.AI 服务器可以本地安装。您的机器,您的网络,无需数据离开您的设备。

1:运行和试用功能

  1. 安装并运行
    1. 对于 Windows 服务,请下载最新版本,安装,然后启动桌面上的服务器仪表板快捷方式或在浏览器中打开 https://:32168

      如果您希望利用支持 CUDA 的 NVIDIA GPU,请在安装 CodeProject.AI 之前确保您已安装CUDA 驱动程序。我们建议在 Windows 上运行CUDA 11.8

    2. 对于 64 位 Linux 的 Docker 容器,运行
      docker run -p 32168:32168 --name CodeProject.AI -d codeproject/ai-server

      对于 Docker GPU(支持 NVIDIA CUDA),请使用

      docker run --gpus all -p 32168:32168 --name CodeProject.AI -d codeproject/ai-server:cuda11_7
  2. 在仪表板顶部,有一个指向演示游乐场的链接。打开它,开始玩吧!

2:运行和调试代码

  1. 克隆CodeProject CodeProject.AI 服务器仓库
  2. 确保您已安装 Visual Studio Code 或 Visual Studio 2019+。
  3. /src 中运行设置脚本
  4. 调试前端服务器应用程序(请参阅下面的注释,但很简单)。

3. 在我的应用程序中使用 CodeProject.AI 服务器

这是一个使用简单的 JavaScript 调用进行场景检测的 API 示例

<html>
<body>
Detect the scene in this file: <input id="image" type="file" />
<input type="button" value="Detect Scene" onclick="detectScene(image)" />

<script>
function detectScene(fileChooser) {
    var formData = new FormData();
    formData.append('image', fileChooser.files[0]);

    fetch('https://:5000/v1/vision/detect/scene', {
        method: "POST",
        body: formData
    })
    .then(response => {
        if (response.ok) response.json().then(data => {
            console.log(`Scene is ${data.label}, ${data.confidence} confidence`)
        });
    });
}
</script>
</body>
</html>

您可以将 CodeProject.AI 服务器安装程序(或仅链接到最新版本的安装程序)包含在您自己的应用程序和安装程序中,瞧,您就有了一个支持 AI 的应用程序。

请参阅API 文档以全面了解功能。

关于安装程序的说明

原生安装程序(Windows、Ubuntu 和 macOS)都将服务器安装为服务。在 Windows 上是 Windows 服务,在 Ubuntu 上使用 systemd,在 macOS 上它只是一个登录项,因此每次登录时都会启动。

对于所有平台,打开 https://:32168 查看仪表板。

要卸载,请注意安装时的说明。供参考

  • Windows 使用标准的 Windows 安装程序,因此请使用“控制面板/应用和功能”小组件来管理安装。
     
  • Ubuntu 使用 dpkg,所以要卸载只需调用
    sudo dpkg -r codeproject.ai-server
  • macOS 卸载通过命令行进行
    sudo bash "/Library/CodeProject.AI Server/<version>/uninstall.sh"

关于 CUDA 和 Nvidia 支持的说明

如果您有支持 CUDA 的 Nvidia 卡,请确保您

  1. 安装CUDA 驱动程序 (我们推荐 CUDA 11.7 或CUDA 11.8(在 Windows 上运行时))
  2. 安装CUDA Toolkit 11.8
  3. 下载并运行我们的cuDNN 安装脚本 以安装 cuDNN 8.9.4。

Nvidia 的下载和驱动程序非常棘手!请确保您下载的驱动程序与 CUDA 11.7+ 兼容,这通常意味着 CUDA 驱动程序版本为 516.94 或更低。版本 522.x 或更高版本可能无法正常工作。您可能需要参考每个驱动程序的发行说明以进行确认。

我们的 Docker 镜像是基于 CUDA 11.7(出于历史原因)和 12.2 构建的。只要您安装了能够处理 11.7 或 12.2 的驱动程序,Docker 镜像就能与您的驱动程序进行接口并正常工作。

CUDA 12.2 为使用 PyTorch 的代码带来了一些挑战,因为迁移到了 Torch 2.0,所以我们倾向于使用 11.7。一些较旧的显卡将不兼容 CUDA 12,甚至不兼容 CUDA 11.7。如果您在使用不支持 CUDA 11.7 的旧显卡时遇到困难,请发表评论,我们将尽力提供帮助。

由于我们使用 CUDA 11.7+(支持 3.7 及以上计算能力),因此我们只能支持等于或好于 GK210 或 Tesla K80 显卡的 Nvidia CUDA 显卡。请参阅此表中支持的显卡,以确定您的显卡是否具有 3.7 或更高的计算能力。

较新的显卡,如 GTX 10xx、20xx 和 30xx 系列、RTX、MX 系列都完全支持。

AI 是一个内存密集型操作。内存小于 2GB 的一些显卡在某些情况下可能会遇到困难。使用仪表板,您可以禁用不需要的模块,或完全禁用一个或多个模块的 GPU 支持。这将释放内存并帮助您重新回到正轨。

包含什么?

CodeProject.AI 服务器包括

  • HTTP REST API 服务器。服务器监听来自其他应用程序的请求,将它们传递给后端分析服务进行处理,然后将结果传回调用者。它作为您设备上一个简单的独立 Web 服务运行。
  • 后端分析服务。操作的核心在于前端 API 后面的分析服务。所有数据处理都在当前机器上完成。没有云调用,也没有数据离开设备。
  • 源代码,当然。

CodeProject.AI 服务器目前可以

  • 检测图像中的对象
  • 检测图像中的人脸
  • 检测图像中场景的类型
  • 识别已在服务中注册的人脸
  • 对自定义模型进行检测

开发环境还提供可以

  • 从图像中移除背景
  • 模糊图像背景
  • 增强图像分辨率
  • 提取文本中最重要的句子以生成文本摘要
  • 对文本进行情感分析

我们将不断扩展功能列表。

我们的目标

  • 推广 AI 开发,激励 AI 开发者社区深入参与。人工智能是行业内一次巨大的范式转变,所有开发人员都应该尝试并熟悉这项技术。CodeProject.AI 服务器作为学习工具、演示以及开箱即用的库和服务而构建。
  • 使 AI 开发变得容易。不是 AI 开发本身有多难。而是选项太多了。我们的架构旨在允许任何 AI 实现找到我们系统的位置,并且我们的服务可以从任何语言调用。
  • 专注于核心用例。我们特意不是为所有人设计的解决方案。相反,我们是为常见的日常需求设计的解决方案。我们将为我们的系统添加数十个模块和成百上千种 AI 功能,但我们的目标始终是清晰和简洁,而不是一个 100% 的解决方案。
  • 利用开发者社区的专业知识。我们不是专家,但我们知道那里有一些开发者是。CodeProject.AI 服务器的真正力量来自于我们 AI 社区的贡献和改进。

许可证

CodeProject.AI 服务器根据服务器端公共许可证获得许可。

发布说明

最新消息 - 2.6

  • 您现在可以在安装时选择要初始安装的模块
  • 一些模块(Coral、Yolov8)现在允许您通过仪表板在运行时下载单个模型。
  • 一个新的人工智能生成模块(Llama LLM 聊天机器人)
  • 一种标准化的方式来处理(在代码中)运行长时间进程的模块,如人工智能生成
  • Debian 支持已改进
  • 仪表板有一些小的 UI 改进
  • 对模块设置文件进行了一些简化
  • 在源代码中包含模板 .NET 和 Python 模块(包括简单和长时间进程演示)
  • Coral 和 ALPR 模块的改进(感谢 Seth 和 Mike)
  • Docker CUDA 12.2 镜像现在包含 cuDNN
  • 安装脚本修复
  • 在 YOLOv8 模块中添加了对象分割
  • 2.6.5 各种安装程序修复

旧版本

版本 2.5

  • 动态 Explorer UI:每个模块现在都为 Explorer 提供自己的 UI
  • 改进了仪表板和 Explorer
    • 模块列表现在显示模块版本历史记录,如果您单击版本号。
    • Explorer 基准测试已更新,以使用当前活动对象检测模块的自定义模型
    • 仪表板上的“信息”按钮现在包含来自模块的状态数据转储。对于对象检测器等模块,它将包含标签/计数字典,以便您可以看到正在检测的内容。对于运行时间较长的模块(如训练),它将包括训练状态。此处用于支持将来的更好 UI 功能。
  • 更新了模块设置架构,其中包含模块作者和原始项目确认
  • 安装程序修复
  • 改进了 Jetson 支持
  • 大量的错误修复,特别是有一个影响模块安装的脚本问题,以及一个影响 YOLOv5 6.2 模块以及 SuperResolution 模块的 modulesettings.json 问题。
  • 更新了 ALPR、OCR(PP-OCR4 支持,感谢 Mike Lud)和 Coral 对象检测(多 TPU 支持,感谢 Seth Price)模块
  • Docker 中预安装的模块现在可以卸载/重新安装
  • 已包含一个新的声音分类器模块
  • 2.5.4:来自每个模块的单独状态更新,解耦了模块的统计信息。这只是稍微清理了一下后端
  • 2.5.4:modulesettings.json 架构的小幅更新,引入了模型要求概念。
  • 2.5.5:支持带有配套稳定扩散模块的长时间进程。

版本 2.4

  • Mesh 支持:根据推理速度自动将推理工作分载到网络上的其他服务器。零配置,并且仪表板支持启用/禁用。
  • CUDA 检测已修复
  • 安装时执行模块自检
  • 添加了 YOLOv8 模块
  • 修复了 YOLOv5 .NET 模块的 GPU 问题,并修复了 YOLOv5 3.1 GPU 支持
  • 修复了 Python 包和 .NET 安装问题
  • 为仅限管理员的安装提供了更好的提示
  • 增加了日志输出以帮助诊断问题
  • 修复了 VC Redist 哈希错误
  • 一般错误修复。
  • 重大更改:modulesettings.json 架构已更改

版本 2.3

  • 专注于改进模块在运行时安装。更多的错误检查,更快的重新安装,更好的报告,以及在需要管理员权限的情况下的手动回退。
  • 经过改进的 SDK,消除了安装脚本中所需的许多(或在某些情况下是全部)样板代码。
  • 精细支持不同的 CUDA 版本以及 Raspberry Pi、Orange Pi 和 Jetson 等系统。
  • 支持 CUDA 12.2
  • 支持 PaddlePaddle 的 GPU(OCR 和车牌识别器受益)
  • CUDA 12.2 Docker 镜像
  • 安装脚本中的大量错误修复
  • UI 调整
  • 2.3.4 ALPR 现在在 Windows 上使用 GPU
  • 2.3.4 修正了 Linux/macOS 安装程序

版本 2.2.0

此版本仍在测试中,主要侧重于安装过程

  • 全新的 Windows 安装程序,提供更多安装选项和更顺畅的升级体验。
  • 新的 macOS 和 Ubuntu 原生安装程序,适用于 x64 和 arm64(包括 Raspberry Pi)
  • 新的安装 SDK,使模块安装程序更轻松
  • 改进的安装反馈和自检
  • Coral.AI 支持 Linux、macOS(仅限 11 和 12 版本)和 Windows
  • 更新
    • 2.2.1 - 2.2.3 各种安装程序修复
    • 2.2.4 - 修复了删除分块以允许 HTTP1.1 访问 API(Blue Iris 修复)

版本 2.1.x Beta

  • 改进了 Raspberry Pi 支持。一个全新的、快速的对象检测模块,支持 Coral.AI TPU,全部在 Arm64 Docker 镜像中。
  • 现在可以安装/卸载所有模块(而不是将某些模块固定为不可卸载)。
  • 安装程序已简化:安装时仅安装服务器,并在首次运行时,我们安装对象检测(Python 和 .NET)和人脸处理(可卸载)。
  • 重构了 Python 模块 SDK。模块是新的子类,而不是我们的模块运行程序的聚合器。
  • 重构了 modulesettings 文件,使其更简单,重复性更少。
  • 改进的日志记录:数量、质量、过滤和更丰富的信息
  • 添加了两个模块:用于在 Raspberry Pi 上使用 Coral 进行对象检测的 ObjectDetectionTFLite,以及用于一些乐趣的 Cartoonise。
  • 改进了 CUDA 卡上的半精度支持检查。
  • 模块现在已版本化,我们的模块注册表现在将仅显示适合您当前服务器版本的模块。
  • 各种错误修复
  • 共享 Python 运行时现在位于 /runtimes 中。
  • 所有模块已从 /AnalysisLayer 文件夹移至 /modules 文件夹
  • 在 CUDA 12 上测试
     
  • 补丁 2.1.11:YOLO 训练模块现在允许您使用自己的数据集。YOLO 6.2 / Face Processing 已恢复到 Torch 1.13。
  • 补丁 2.1.10:添加了 YOLOv5 训练模块和支持。改进了系统信息。Orange Pi 和 NVIDIA Jetson 支持。添加了触发器。将 VersionCompatibililty 重命名为 ModuleReleases。因为拼写。
  • 补丁 2.1.9:增加了并可调整的模块安装超时时间,并改进了安装日志。修复了 PyTorch 中的资源争用问题,修复了资源使用报告,改进了原生 Linux/WSL CUDA 设置。异步修复。改进了半精度支持。
  • 补丁 2.1.8:大幅减少了在获取 CPU/GPU 使用率更新时的系统负载。
  • 补丁 2.1.7:修复了可能导致服务器关机的内存/资源泄漏问题
  • 补丁 2.1.6 及以下版本:安装程序修复

请参阅我们的CUDA 说明,了解有关设置和限制 Nvidia 卡和 CUDA 支持的信息。

如果您正在升级:当仪表板启动时,可能需要强制重新加载(Windows 上按 Ctrl+R)仪表板,以确保您看到的是最新版本。

版本 2.0.x Beta

  • 2.0.8:改进了分析进程管理。清除那些占用大量内存的 Python 进程!
  • 2.0.7:改进了日志记录(文件和仪表板),模块安装程序/卸载程序错误修复
  • 2.0.6:纠正了可下载模块安装程序的问题
  • 我们的新模块注册表:通过仪表板在运行时下载和安装模块
  • 提高了对象检测模块的性能
  • 可选的 YOLO 3.1 对象检测模块,适用于较旧的 GPU
  • 优化 RAM 使用
  • 支持 Raspberry Pi 4+。使用 VSCode 原生代码并在 Raspberry Pi 上直接运行
  • 重新设计的仪表板
  • 每个 API 调用的新计时报告
  • 新的、简化的设置和安装脚本

版本 1.6.x Beta

  • 优化 RAM 使用
  • 通过仪表板启用/禁用模块和 GPU 支持的能力
  • REST 设置 API,用于实时更新设置
  • Apple M1/M2 GPU 支持
  • 针对某些 Nvidia 卡的解决方案
  • 异步进程和日志记录,以提高性能
  • 重大更改CustomObjectDetection 现在是 ObjectDetectionYolo 的一部分
  • CPU + 视频演示的性能修复
  • 补丁 1.6.7:解决了潜在的内存泄漏问题
  • 补丁 1.6.8:Linux 上的图像处理改进,.NET 上的多线程 ONNX

版本 1.5.6.2 Beta

  • Docker nVidia GPU 支持
  • 进一步提高性能
  • cuDNN 安装脚本,以帮助进行 nVidia 驱动程序和工具包安装
  • Bug 修复

版本 1.5.6 Beta

  • Windows 的 nVidia GPU 支持
  • Python 模块性能改进
  • 从事 Python SDK 工作,使创建模块更容易
  • 对于创建新模块的开发人员,开发安装程序已大大简化
  • 添加了 SuperResolution 作为演示模块

版本 1.5 Beta

  • 支持自定义模型

版本 1.3.x Beta

  • 重构和改进了设置和模块添加系统
  • 引入了 modulesettings.json 文件
  • 新的分析模块

版本 1.2.x Beta

  • 支持 Apple Silicon 进行开发模式
  • 原生 Windows 安装程序
  • 作为 Windows 服务运行
  • 在 Docker 容器中运行
  • 使用 Linux (Ubuntu)、macOS 和 Windows 上的 VSCode,以及 Windows 上的 Visual Studio 进行安装和构建
  • 下载包大小的整体优化

以前

  • 我们开始时只是一个仅限于 Windows 10+ 的概念验证。通过一个简单的 BAT 脚本进行安装,代码中充满了激动人心的锋利边缘。包括一个简单的仪表板和游乐场。分析目前仅限于 Python 代码。
  • 启用了版本检查,以提醒用户新版本。
  • 使用 YOLO 模型实现的新 .NET 场景检测,以确保代码库与平台和技术栈无关
  • Blue Iris 集成完成。
© . All rights reserved.