krr

krr

基于历史数据优化Kubernetes资源分配工具

KRR是一款优化Kubernetes集群资源分配的命令行工具。通过分析Prometheus中的Pod使用数据,KRR为CPU和内存提供适当的请求和限制建议,有助于降低成本和提高性能。该工具无需安装额外Agent,支持多种数据源,并提供可扩展的推荐策略。KRR还通过免费SaaS平台提供可视化解释,帮助用户了解资源使用情况。根据研究,使用KRR可能节省高达69%的云计算成本。

Kubernetes资源优化Prometheus成本节约容器配置Github开源项目

![产品名称屏幕截图][product-screenshot]

<div align="center"> <h1 align="center">基于历史数据的Kubernetes资源建议</h1> <h2 align="center">基于Prometheus/Coralogix/Thanos/Mimir等现有数据获取建议!</h2> <p align="center"> <a href="#installation"><strong>安装</strong></a> . <a href="#how-krr-works"><strong>KRR工作原理</strong></a> . <a href="#slack-integration"><strong>Slack集成</strong></a> . <a href="#free-krr-ui-on-robusta-saas"><strong>免费KRR UI</strong></a> <br /> <a href="#usage">使用</a> · <a href="https://github.com/robusta-dev/krr/issues">报告Bug</a> · <a href="https://github.com/robusta-dev/krr/issues">请求功能</a> · <a href="#support">支持</a> <br /> 喜欢KRR吗?请给这个仓库⭐来表示您的支持! </p> </div>

关于项目

Robusta KRR (Kubernetes资源推荐器)是一个用于优化Kubernetes集群资源分配的CLI工具。它从Prometheus收集Pod使用数据,并为CPU和内存推荐请求和限制。这降低了成本并提高了性能

数据集成

用于向KRR发送数据

查看说明:PrometheusThanosVictoria MetricsGoogle管理的PrometheusAmazon管理的PrometheusAzure管理的PrometheusCoralogixGrafana CloudGrafana Mimir

报告集成

用于从KRR接收信息

查看说明:在UI中查看建议将建议发送到Slack将KRR设置为k9s插件

特性

  • 无需代理:在本地机器上运行CLI工具即可立即获得结果。(或在集群内运行以获得每周Slack报告。)
  • Prometheus集成:基于您已有的数据获取建议
  • 可解释性通过解释图表理解建议的计算方式
  • 可扩展策略:轻松创建和使用您自己的资源建议计算策略。
  • 免费SaaS平台:使用免费的Robusta SaaS平台了解KRR为什么会做出这样的建议。
  • 未来支持:即将推出的版本将支持自定义资源(如GPU)和自定义指标。

使用KRR可以节省多少?

根据最近的Sysdig研究,平均而言,Kubernetes集群有:

  • 69%未使用的CPU
  • 18%未使用的内存

通过使用KRR调整容器大小,您可以平均节省69%的云成本。

阅读更多关于KRR如何工作的内容

与Kubernetes VPA的区别

功能 🛠️Robusta KRR 🚀Kubernetes VPA 🌐
资源建议 💡✅ CPU/内存请求和限制✅ CPU/内存请求和限制
安装位置 🌍✅ 不需要安装在集群内,可以在您自己的设备上使用,连接到集群❌ 必须安装在集群内
工作负载配置 🔧✅ 无需为每个工作负载配置VPA对象❌ 需要为每个工作负载配置VPA对象
即时结果 ⚡✅ 立即获得结果(如果Prometheus正在运行)❌ 需要时间收集数据并提供建议
报告 📊✅ Json、CSV、Markdown、Web UI❌ 不支持
可扩展性 🔧✅ 用几行Python代码添加自己的策略:warning: 有限的可扩展性
可解释性 📖查看解释建议的图表❌ 不支持
自定义指标 📏🔄 未来版本支持❌ 不支持
自定义资源 🎛️🔄 未来版本支持(如GPU)❌ 不支持
自动缩放 🔀🔄 未来版本支持✅ 自动应用建议
默认历史 🕒14天8天
支持HPA 🔥✅ 使用--allow-hpa标志启用❌ 不支持

安装

要求

KRR需要Prometheus 2.26+、kube-state-metricscAdvisor

<details> <summary>KRR需要哪些指标?</summary> 如果您使用kube-prometheus-stack或<a href="https://docs.robusta.dev/master/configuration/alertmanager-integration/embedded-prometheus.html">Robusta的嵌入式Prometheus</a>,则无需设置。

如果您有不同的设置,请确保存在以下指标:

  • container_cpu_usage_seconds_total
  • container_memory_working_set_bytes
  • kube_replicaset_owner
  • kube_pod_owner
  • kube_pod_status_phase 注意: 如果最后三个指标中有一个缺失,KRR 仍然可以工作,但它在计算建议时只会考虑当前正在运行的 pod。历史上已不存在于集群中的 pod 将不会被考虑在内。

安装方法

<details> <summary>Brew (Mac/Linux)</summary>
  1. 添加我们的 tap:
brew tap robusta-dev/homebrew-krr
  1. 安装 KRR:
brew install krr
  1. 检查安装是否成功:
krr --help
  1. 运行 KRR (首次启动可能需要稍长时间):
krr simple
</details> <details> <summary>Windows</summary>

您可以在 WSL2 上使用 brew 安装(见上文),或从源代码安装(见下文)。

</details> <details> <summary>离线安装(无网络环境)</summary>

您可以从 <a href="https://github.com/robusta-dev/krr/releases">Releases</a> 下载预构建的二进制文件,或使用预构建的 Docker 容器。例如,版本 1.8.3 的容器是:

us-central1-docker.pkg.dev/genuine-flight-317411/devel/krr:v1.8.3

我们不建议在离线环境中从源代码安装 KRR,因为安装 Python 依赖项会很麻烦。请使用上述方法之一,如果需要帮助,请通过 Slack、GitHub issues 或电子邮件与我们联系。

</details> <details> <summary>从源代码安装</summary>
  1. 确保您已安装 Python 3.9 (或更高版本)
  2. 克隆仓库:
git clone https://github.com/robusta-dev/krr
  1. 进入项目根目录 (cd ./krr)
  2. 安装依赖:
pip install -r requirements.txt
  1. 运行工具:
python krr.py --help

请注意,使用源代码需要您以 Python 脚本方式运行,而使用 brew 安装允许直接运行 krr。 上面所有示例都显示运行命令为 krr ...,如果您使用手动安装,请将其替换为 python krr.py ...

</details>

其他选项

特定环境说明

为以下环境设置 KRR...

<p align="right">(<a href="#readme-top">返回顶部</a>)</p>

Robusta SaaS 平台上的免费 KRR UI

我们强烈建议使用 免费的 Robusta SaaS 平台。您可以:

  • 通过应用使用历史了解单个应用的建议

  • 按命名空间、优先级等对建议进行排序和筛选

  • 为开发人员提供 YAML 片段以修复 KRR 发现的问题

  • 使用 KRR 扫描历史分析影响

    <a href="https://www.loom.com/share/49ea188f67c545f0ae98508b448d1a8b"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/5e4afa17-9b11-482d-89af-2cba1970fe7f.gif"> </a>
<!-- 使用示例 -->

使用方法

<details> <summary>基本用法</summary>
krr simple
</details> <details> <summary>调整推荐算法(策略)</summary>

最有用的标志:

  • --cpu-min 设置推荐的最小 CPU 值(以毫核为单位)
  • --mem-min 设置推荐的最小内存值(以 MB 为单位)
  • --history_duration 使用的 Prometheus 历史数据的持续时间(以小时为单位)

可以使用以下命令查看有关策略设置的更多具体信息:

krr simple --help
</details> <details> <summary>提供明确的 Prometheus URL</summary>

如果您的 Prometheus 没有自动连接,您可以使用 kubectl port-forward 手动转发 Prometheus。

例如,如果您有一个名为 kube-prometheus-st-prometheus-0 的 Prometheus Pod,则运行此命令进行端口转发:

kubectl port-forward pod/kube-prometheus-st-prometheus-0 9090

然后,打开另一个终端并在其中运行 krr,提供明确的 Prometheus url:

krr simple -p http://127.0.0.1:9090
</details> <details> <summary>在特定命名空间上运行</summary>

使用 -n 列出您想要的任意多个命名空间(在本例中为 defaultingress-nginx)

krr simple -n default -n ingress-nginx

参见 ServiceAccount 和 RBAC 权限示例

</details> <details> <summary>在按标签过滤的工作负载上运行</summary>

使用 <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api">标签选择器</a>

python krr.py simple --selector 'app.kubernetes.io/instance in (robusta, ingress-nginx)'
</details> <details> <summary>覆盖 kubectl 上下文</summary>

默认情况下,krr 将在当前上下文中运行。如果您想在不同的上下文中运行它:

krr simple -c my-cluster-1 -c my-cluster-2
</details> <details> <summary>用于报告的输出格式(JSON、YAML、CSV 等)</summary>

目前,KRR 提供了几种格式化程序来表示扫描数据:

  • table - 默认使用的漂亮的 CLI 表格,由 Rich 库提供支持
  • json
  • yaml
  • pprint - 来自 Python pprint 库的数据表示
  • csv - 将数据导出到当前目录中的 csv 文件

要使用选定的格式化程序运行策略,请添加 -f 标志。通常应该与 --fileoutput <filename> 结合使用,以将干净的输出写入文件而不包含日志:

krr simple -f json --fileoutput krr-report.json

如果您愿意,也可以使用 --logtostderr 将格式化的输出放在一个文件中,将错误日志放在另一个文件中:

krr simple --logtostderr -f json > result.json 2> logs-and-errors.log
</details> <details> <summary>中央化 Prometheus(多集群)</summary> <p ><a href="#scanning-with-a-centralized-prometheus">请参阅下面关于过滤中央化 Prometheus 输出以匹配单个集群的内容</a></p> </details> <details> <summary>Prometheus 认证</summary>

KRR 支持 Prometheus、VictoriaMetrics、Coralogix 和其他兼容 Prometheus 的指标存储的所有已知认证方案。

请参考 krr simple --help,并查看标志 --prometheus-url--prometheus-auth-header--prometheus-headers --prometheus-ssl-enabled--coralogix-token 以及各种 --eks-* 标志。

如果您需要帮助,请通过 Slack、电子邮件或打开 GitHub issue 与我们联系。

</details> <details> <summary>调试模式</summary> 如果您想查看额外的调试日志:
krr simple -v
</details> <p align="right">(<a href="#readme-top">返回顶部</a>)</p>

KRR 的工作原理

指标收集

Robusta KRR 使用以下 Prometheus 查询来收集使用数据:

  • CPU 使用率:
sum(irate(container_cpu_usage_seconds_total{{namespace="{object.namespace}", pod="{pod}", container="{object.container}"}}[{step}]))
  • 内存使用:
sum(container_memory_working_set_bytes{job="kubelet", metrics_path="/metrics/cadvisor", image!="", namespace="{object.namespace}", pod="{pod}", container="{object.container}"})

需要自定义指标吗?告诉我们,我们会添加支持。

Robusta SaaS上免费获取KRR建议的详细分析。

算法

默认情况下,我们使用一个简单的策略来计算资源建议。计算方法如下(具体数值可以通过CLI参数自定义):

  • 对于CPU,我们将请求设置在第95百分位,不设限制。这意味着在95%的情况下,您的CPU请求将足够。对于剩下的5%,我们不设限制。这意味着您的pod可以突发使用节点上任何可用的CPU - 例如其他pod请求但当前未使用的CPU。

  • 对于内存,我们取过去一周的最大值并添加15%的缓冲。

Prometheus连接

了解KRR如何尝试找到默认Prometheus进行连接,请<a href="#prometheus-victoria-metrics-and-thanos-auto-discovery">点击这里</a>

<p align="right">(<a href="#readme-top">回到顶部</a>)</p>

数据源集成

<details id="prometheus-victoria-metrics-and-thanos-auto-discovery"><summary>Prometheus、Victoria Metrics和Thanos自动发现</summary>

默认情况下,KRR将尝试自动发现正在运行的Prometheus、Victoria Metrics和Thanos。 对于发现Prometheus,它会扫描具有以下标签的服务:

"app=kube-prometheus-stack-prometheus" "app=prometheus,component=server" "app=prometheus-server" "app=prometheus-operator-prometheus" "app=rancher-monitoring-prometheus" "app=prometheus-prometheus"

对于Thanos,使用这些标签:

"app.kubernetes.io/component=query,app.kubernetes.io/name=thanos", "app.kubernetes.io/name=thanos-query", "app=thanos-query", "app=thanos-querier",

对于Victoria Metrics,使用以下标签:

"app.kubernetes.io/name=vmsingle", "app.kubernetes.io/name=victoria-metrics-single", "app.kubernetes.io/name=vmselect", "app=vmselect",

如果这些标签都无法找到Prometheus、Victoria Metrics或Thanos,您将收到一个错误,并且需要明确传递有效的URL(使用-p标志)。

<p align="right">(<a href="#readme-top">回到顶部</a>)</p> </details> <details id="scanning-with-a-centralized-prometheus"> <summary>使用中央化Prometheus进行扫描</summary>

如果您的Prometheus监控多个集群,我们需要您在Prometheus中为集群定义的标签。

例如,如果您的集群具有Prometheus标签cluster: "my-cluster-name",则运行以下命令:

krr.py simple --prometheus-label cluster -l my-cluster-name

您可能还需要使用-p标志来明确提供Prometheus的URL。

</details> <details id="azure-managed-prometheus"> <summary>Azure托管Prometheus</summary>

对于Azure托管Prometheus,您需要生成一个访问令牌,可以通过运行以下命令来完成:

# 如果您尚未登录Azure,请取消注释以下行 # az login AZURE_BEARER=$(az account get-access-token --resource=https://prometheus.monitor.azure.com --query accessToken --output tsv); echo $AZURE_BEARER

然后运行以下命令,将PROMETHEUS_URL替换为您的Azure托管Prometheus URL:

python krr.py simple --namespace default -p PROMETHEUS_URL --prometheus-auth-header "Bearer $AZURE_BEARER"
<p ><a href="#scanning-with-a-centralized-prometheus">点击此处了解如何为中央化Prometheus配置标签</a></p> <p align="right">(<a href="#readme-top">回到顶部</a>)</p> </details> <details id="google-managed-prometheus"> <summary>Google托管Prometheus (GMP)</summary>

请在这里查看详细的GMP使用说明

<p align="right">(<a href="#readme-top">回到顶部</a>)</p> </details> <details id="amazon-managed-prometheus"> <summary>Amazon托管Prometheus</summary>

对于Amazon托管Prometheus,您需要添加Prometheus链接和标志--eks-managed-prom,krr将自动使用您的aws凭证

python krr.py simple -p "https://aps-workspaces.REGION.amazonaws.com/workspaces/..." --eks-managed-prom

其他可选参数包括:

--eks-profile-name PROFILE_NAME_HERE # 指定要使用的配置文件 --eks-access-key ACCESS_KEY # 指定您的访问密钥 --eks-secret-key SECRET_KEY # 指定您的秘密密钥 --eks-service-name SERVICE_NAME # 在签名中使用特定的服务名称 --eks-managed-prom-region REGION_NAME # 指定Prometheus所在的区域
<p ><a href="#scanning-with-a-centralized-prometheus">点击此处了解如何为中央化Prometheus配置标签</a></p> <p align="right">(<a href="#readme-top">回到顶部</a>)</p> </details> <details id="coralogix-managed-prometheus"> <summary>Coralogix托管Prometheus</summary>

对于Coralogix托管Prometheus,您需要指定Prometheus链接并添加标志coralogix_token,其中包含您的日志查询密钥

python krr.py simple -p "https://prom-api.coralogix..." --coralogix_token
<p ><a href="#scanning-with-a-centralized-prometheus">点击此处了解如何为中央化Prometheus配置标签</a></p> <p align="right">(<a href="#readme-top">回到顶部</a>)</p> </details> <details id="grafana-cloud-managed-prometheus"> <summary>Grafana Cloud托管Prometheus</summary>

对于Grafana Cloud托管Prometheus,您需要指定Prometheus链接、Prometheus用户和Grafana Cloud堆栈的访问令牌。可以在Grafana Cloud门户上找到堆栈的Prometheus链接和用户。还可以使用同一门户上的访问策略创建具有metrics:read范围的访问令牌。

接下来,运行以下命令,将PROM_URL、PROM_USER和PROM_TOKEN变量的值设置为您的Grafana Cloud堆栈的Prometheus链接、Prometheus用户和访问令牌。

python krr.py simple -p $PROM_URL --prometheus-auth-header "Bearer ${PROM_USER}:${PROM_TOKEN}" --prometheus-ssl-enabled
<p ><a href="#scanning-with-a-centralized-prometheus">点击此处了解如何为中央化Prometheus配置标签</a></p> <p align="right">(<a href="#readme-top">回到顶部</a>)</p> </details> <details id="grafana-mimir-auto-discovery"> <summary>Grafana Mimir自动发现</summary>

默认情况下,KRR将尝试自动发现正在运行的Grafana Mimir。

为了发现Prometheus,它会扫描具有以下标签的服务:

"app.kubernetes.io/name=mimir,app.kubernetes.io/component=query-frontend"
<p align="right">(<a href="#readme-top">回到顶部</a>)</p> </details>

集成

<details id="free-ui-for-krr-recommendations"> <summary>KRR建议的免费UI</summary>

我们强烈建议使用免费的Robusta SaaS平台。您可以:

  • 通过应用使用历史了解单个应用的建议
  • 按命名空间、优先级等对建议进行排序和过滤
  • 为开发人员提供YAML片段以修复KRR发现的问题
  • 使用KRR扫描历史分析影响 <a href="https://www.loom.com/share/49ea188f67c545f0ae98508b448d1a8b"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/5e4afa17-9b11-482d-89af-2cba1970fe7f.gif">
</a> </details> <details id="slack-notification"> <summary>Slack 通知</summary>

让成本节省自动化。获取关于超过 X% 的建议的 Slack 通知。发送每周全局报告,或每个团队一份报告。

![Slack 截图][slack-screenshot]

先决条件

  • 一个 Slack 工作区

设置

  1. 使用 Helm 在集群中安装 Robusta 并配置 Slack
  2. 通过在 generated_values.yaml 中添加以下内容来创建您的 KRR Slack playbook:
customPlaybooks:
# 每周对 devs-namespace 命名空间运行一次 krr 扫描,并将结果发送到配置的 Slack 频道
customPlaybooks:
- triggers:
  - on_schedule:
      fixed_delay_repeat:
        repeat: -1 # 运行次数,-1 表示永久运行
        seconds_delay: 604800 # 1 周
  actions:
  - krr_scan:
      args: "--namespace devs-namespace" ## 在此处填写 KRR 参数
  sinks:
      - "main_slack_sink" # 在此处填写您想要发送报告的 Slack sink
  1. 执行 Helm 升级以应用新的值:helm upgrade robusta robusta/robusta --values=generated_values.yaml --set clusterName=<YOUR_CLUSTER_NAME>
<p align="right">(<a href="#readme-top">返回顶部</a>)</p> </details> <details id="k9s-plugin"> <summary>k9s 插件</summary>

安装我们的 k9s 插件,直接在 deployments/daemonsets/statefulsets 视图中获取建议。

插件:resource recommender

安装说明:k9s 文档

</details>

创建自定义策略/格式化器

查看 examples 目录,了解如何创建自定义策略/格式化器的示例。

<p align="right">(<a href="#readme-top">返回顶部</a>)</p> <!-- 测试 -->

测试

我们使用 pytest 运行测试。

  1. 手动安装项目(参见上文)
  2. 导航到项目根目录
  3. 安装 poetry(https://python-poetry.org/docs/#installing-with-the-official-installer)
  4. 安装开发依赖:
poetry install --group dev
  1. 以可编辑依赖方式安装 robusta_krr:
pip install -e .
  1. 运行测试:
poetry run pytest
<p align="right">(<a href="#readme-top">返回顶部</a>)</p> <!-- 贡献 -->

贡献

贡献是使开源社区成为学习、激励和创造的绝佳场所的原因。我们非常感谢您做出的任何贡献。

如果您有让这个项目变得更好的建议,请 fork 该仓库并创建一个 pull request。您也可以简单地开启一个带有"enhancement"标签的 issue。 别忘了给项目点个 star!再次感谢!

  1. Fork 项目
  2. 创建您的特性分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 推送到分支(git push origin feature/AmazingFeature
  5. 开启一个 Pull Request
<p align="right">(<a href="#readme-top">返回顶部</a>)</p> <!-- 许可证 -->

许可证

根据 MIT 许可证分发。有关更多信息,请参阅 LICENSE.txt

<p align="right">(<a href="#readme-top">返回顶部</a>)</p> <!-- 联系方式 -->

支持

如果您有任何问题,请随时联系 support@robusta.dev 或在 robustacommunity.slack.com 上给我们发消息

<p align="right">(<a href="#readme-top">返回顶部</a>)</p>

编辑推荐精选

AEE

AEE

AI Excel全自动制表工具

AEE 在线 AI 全自动 Excel 编辑器,提供智能录入、自动公式、数据整理、图表生成等功能,高效处理 Excel 任务,提升办公效率。支持自动高亮数据、批量计算、不规则数据录入,适用于企业、教育、金融等多场景。

UI-TARS-desktop

UI-TARS-desktop

基于 UI-TARS 视觉语言模型的桌面应用,可通过自然语言控制计算机进行多模态操作。

UI-TARS-desktop 是一款功能强大的桌面应用,基于 UI-TARS(视觉语言模型)构建。它具备自然语言控制、截图与视觉识别、精确的鼠标键盘控制等功能,支持跨平台使用(Windows/MacOS),能提供实时反馈和状态显示,且数据完全本地处理,保障隐私安全。该应用集成了多种大语言模型和搜索方式,还可进行文件系统操作。适用于需要智能交互和自动化任务的场景,如信息检索、文件管理等。其提供了详细的文档,包括快速启动、部署、贡献指南和 SDK 使用说明等,方便开发者使用和扩展。

Wan2.1

Wan2.1

开源且先进的大规模视频生成模型项目

Wan2.1 是一个开源且先进的大规模视频生成模型项目,支持文本到图像、文本到视频、图像到视频等多种生成任务。它具备丰富的配置选项,可调整分辨率、扩散步数等参数,还能对提示词进行增强。使用了多种先进技术和工具,在视频和图像生成领域具有广泛应用前景,适合研究人员和开发者使用。

爱图表

爱图表

全流程 AI 驱动的数据可视化工具,助力用户轻松创作高颜值图表

爱图表(aitubiao.com)就是AI图表,是由镝数科技推出的一款创新型智能数据可视化平台,专注于为用户提供便捷的图表生成、数据分析和报告撰写服务。爱图表是中国首个在图表场景接入DeepSeek的产品。通过接入前沿的DeepSeek系列AI模型,爱图表结合强大的数据处理能力与智能化功能,致力于帮助职场人士高效处理和表达数据,提升工作效率和报告质量。

Qwen2.5-VL

Qwen2.5-VL

一款强大的视觉语言模型,支持图像和视频输入

Qwen2.5-VL 是一款强大的视觉语言模型,支持图像和视频输入,可用于多种场景,如商品特点总结、图像文字识别等。项目提供了 OpenAI API 服务、Web UI 示例等部署方式,还包含了视觉处理工具,有助于开发者快速集成和使用,提升工作效率。

HunyuanVideo

HunyuanVideo

HunyuanVideo 是一个可基于文本生成高质量图像和视频的项目。

HunyuanVideo 是一个专注于文本到图像及视频生成的项目。它具备强大的视频生成能力,支持多种分辨率和视频长度选择,能根据用户输入的文本生成逼真的图像和视频。使用先进的技术架构和算法,可灵活调整生成参数,满足不同场景的需求,是文本生成图像视频领域的优质工具。

WebUI for Browser Use

WebUI for Browser Use

一个基于 Gradio 构建的 WebUI,支持与浏览器智能体进行便捷交互。

WebUI for Browser Use 是一个强大的项目,它集成了多种大型语言模型,支持自定义浏览器使用,具备持久化浏览器会话等功能。用户可以通过简洁友好的界面轻松控制浏览器智能体完成各类任务,无论是数据提取、网页导航还是表单填写等操作都能高效实现,有利于提高工作效率和获取信息的便捷性。该项目适合开发者、研究人员以及需要自动化浏览器操作的人群使用,在 SEO 优化方面,其关键词涵盖浏览器使用、WebUI、大型语言模型集成等,有助于提高网页在搜索引擎中的曝光度。

xiaozhi-esp32

xiaozhi-esp32

基于 ESP32 的小智 AI 开发项目,支持多种网络连接与协议,实现语音交互等功能。

xiaozhi-esp32 是一个极具创新性的基于 ESP32 的开发项目,专注于人工智能语音交互领域。项目涵盖了丰富的功能,如网络连接、OTA 升级、设备激活等,同时支持多种语言。无论是开发爱好者还是专业开发者,都能借助该项目快速搭建起高效的 AI 语音交互系统,为智能设备开发提供强大助力。

olmocr

olmocr

一个用于 OCR 的项目,支持多种模型和服务器进行 PDF 到 Markdown 的转换,并提供测试和报告功能。

olmocr 是一个专注于光学字符识别(OCR)的 Python 项目,由 Allen Institute for Artificial Intelligence 开发。它支持多种模型和服务器,如 vllm、sglang、OpenAI 等,可将 PDF 文件的页面转换为 Markdown 格式。项目还提供了测试框架和 HTML 报告生成功能,方便用户对 OCR 结果进行评估和分析。适用于科研、文档处理等领域,有助于提高工作效率和准确性。

飞书多维表格

飞书多维表格

飞书多维表格 ×DeepSeek R1 满血版

飞书多维表格联合 DeepSeek R1 模型,提供 AI 自动化解决方案,支持批量写作、数据分析、跨模态处理等功能,适用于电商、短视频、影视创作等场景,提升企业生产力与创作效率。关键词:飞书多维表格、DeepSeek R1、AI 自动化、批量处理、企业协同工具。

下拉加载更多