作为正在构建AI应用的人,我发现用户对AI的兴趣激增,这无疑现在是掌握AI应用开发的最佳时机。
因此,我整理了一个包含8个开源仓库的列表,你可以现在就用这些仓库来构建功能强大的AI系统。
《恶搞之家》的 GIF !(https://imgapi.imooc.com/66fa21200a4d2f5908000585.jpg)
此处省略
1. Composio 👑 - 用于AI应用程序的工具和基础设施我一直在开发AI应用程序,让我来告诉你,开发一个既可靠又强大的AI应用程序这可不是件容易的事。特别是在AI驱动的工作流自动化方面更是如此。
然而,Composio 让集成第三方服务(如 GitHub、Slack、Gmail 等)与 AI 模型等变得非常简单,从而实现从头到尾的工作流程自动化。
他们拥有超过100个工具集,涵盖了各个业务领域,如CRM、HRM、开发、管理和生产效率,帮助您构建复杂的自动化流程。
它们是开源的,还内置了对 Python 和 Javascript 的支持。
这里是如何迅速上手使用Composio的。
在命令行中运行以下命令来安装composio-core, pip install composio-core
.
全屏 退出全屏
添加GitHub的集成。
在Composio里添加github
点击这里进入全屏模式 点击这里退出全屏
Composio为您处理用户的登录验证和权限管理。
这里是给仓库点星的GitHub集成使用方法。
from openai import OpenAI
from composio_openai import ComposioToolSet, App
openai_client = OpenAI(api_key="******OPENAIKEY******")
# 初始化 Composio 工具集
composio_toolset = ComposioToolSet(api_key="**\\*\\***COMPOSIO_API_KEY**\\*\\***")
# 步骤 4
# 获取预配置的 GitHub 工具
actions = composio_toolset.get_actions(actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER])
my_task = "在 GitHub 上给 ComposioHQ/composio 仓库点赞星星"
# 创建一个聊天完成请求来决定操作
response = openai_client.chat.completions.create(
model="gpt-4-turbo",
tools=actions, # 传递之前获取的那些操作。
messages=[
{"role": "system", "content": "你是一个乐于助人的助手,"},
{"role": "user", "content": my_task}
]
)
点击此处进入全屏模式,点击这里退出全屏模式
运行这个Python脚本,通过代理执行以下指令。
要了解更多关于 Composio 的信息,请访问他们的文档页面。
GIF
zh: zh: (此处省略内容)
2. AI应用的内存层Mem0记忆管理在打造AI助手时是一个真正的挑战。它涉及存储和检索过去的互动。高效的记忆层对于提供个性化的用户体验至关重要。
Mem0无疑是这个领域里最棒的解决方案。Mem0记住用户的喜好,适应个人的需求,并不断进步,非常适合用于客服聊天机器人、AI助手和自主系统。
主要功能
- 多层次的内存管理:用户、会话和AI代理的记忆保留
- 自适应个性化:根据互动持续改进
- 开发者友好的API:简单地集成到各种应用程序
- 跨平台一致性:在不同设备上的统一行为
- 托管服务:无忧的托管
开始用Mem0,使用pip
安装。
在终端中运行以下命令来安装mem0ai包:\npip install mem0ai
进入全屏 退出全屏
初始化Mem0:
从mem0导入Memory;m = Memory();
进入全屏 退出全屏
内存相关的操作。
# 1. 添加:从任何非结构化文本中存储记忆
result = m.add("我正在努力提高我的网球技巧。推荐一些在线课程。", user_id="alice", metadata={"category": "hobbies"})
# 创建的记忆 --> '她在提高她的网球技巧。' 和 '正在寻找网球相关的在线课程建议。'
# 2. 更新:更新记忆
result = m.update(memory_id=<memory_id_1>, data="喜欢在周末打网球,也在寻找网球相关的在线课程建议。")
# 更新的记忆 --> '喜欢在周末打网球,也在寻找网球相关的在线课程建议。'
# 3. 搜索:搜索相关记忆
related_memories = m.search(query="Alice 的爱好有哪些?", user_id="alice")
# 检索的记忆 --> '喜欢在周末打网球,也在寻找网球相关的在线课程建议。'
# 4. 获取所有记忆
all_memories = m.get_all()
memory_id = all_memories["memories"][0]["id"] # 获取一个 memory_id
# 所有记忆项 --> '喜欢在周末打网球,也在寻找网球相关的在线课程建议。'
# 5. 获取特定的记忆 ID 的记忆历史
history = m.history(memory_id=<memory_id_1>)
# 对应的记忆日志记录 --> {'prev_value': '正在努力提高网球技巧水平,并且对网球在线课程感兴趣。', 'new_value': '喜欢在周末打网球,也在寻找网球相关的在线课程建议。'}
进入全屏模式;退出全屏模式
更多关于Mem0功能的信息,请查阅他们官方的文档。
这是一个动图,如图所示
GIF
给 Mem0 仓库点个星星 ⭐ https://github.com/mem0ai/mem0
zh: ***
3. AgentOps - AI 代理观测平台构建AI代理现在已经成为一种潮流,但确保它们按预期工作则是另一回事。大多数开发者并不关心监控他们的AI代理,这将是一场潜在的灾难。
AgentOps简化并高效管理代理可观测性,确保代理按计划运行。它有助于大型语言模型成本跟踪、基准测试和对比,并且与大多数大型语言模型和代理框架兼容,比如CrewAI、Langchain和Autogen。
用pip
安装AgentOps,开始使用吧。
# 安装agentops插件
pip install agentops
全屏模式 退出全屏
启动 AgentOps 客户端并自动获取每次 LLM 调用的分析。
导入 agentops
# 程序代码的开始部分(例如 main.py, __init__.py)
agentops.init(请在此处插入您的 API 密钥)
...
# (可选:记录特定函数)
@agentops.record_action('将要记录的示例函数')
def sample_function(...):
...
# 程序结束
agentops.end_session('Success')
# 完成啦 🎉
进入全屏、退出全屏
参阅他们的文档(https://docs.agentops.ai/v1/introduction)以获取更多详情。
GIF (点击查看)
zh: ……
4. E2B - AI代理的E2B代码解析 (注:E2B为特定术语,代表某种代码解释机制)或者
4. E2B - AI代理的代码解析 (E2B)在许多应用场景中,例如成为AI工程师、分析师或导师,您需要一种方法将AI模型与代码执行环境连接起来,而E2B目前是这一领域的领先解决方案。
E2B Sandbox 是一个供AI代理及应用使用的安全云平台。
它可以让AI像人类一样,在GitHub代码库和云端浏览器等工具上长时间安全运行。
这里提供了原生的代码解释器SDKs,支持Python以及Javascript/Typescript(软件开发工具包)。
代码解释器插件允许你在一个安全的虚拟机中运行AI生成的代码——E2B沙盒。在其中,你可以通过插件操控一个Jupyter服务器。
开始使用E2B吧,请使用以下命令。
安装代码解释器插件
npm i @e2b/code-interpreter
全屏查看,退出全屏
运行程序。
import { CodeInterpreter } from '@e2b/code-interpreter'
const 沙箱 = await CodeInterpreter.create()
await 沙箱.notebook.execCell('x = 1')
const 执行结果 = await 沙箱.notebook.execCell('x+=1; x')
console.log(执行结果.text) // 输出 2
await 沙箱.关闭()
全屏模式 退出全屏
要了解更多关于如何与E2B合作的方法,请访问他们的官方文档。
GIF 动图 "E2B动图"
给AgentOps仓库点个星⭐ https://github.com/e2b-dev/E2B
zh: (省略)
5. 自动代理生成 - 一个用于智能代理的编程框架,简称Autogen构建具有代理性的工作流可能会很快变得令人应接不暇。来自微软的开源框架Autogen简化了构建多代理工作流的流程。
你可以创建分工明确的AI代理角色,以完成类似于现实世界团队完成的复杂任务。
它支持多种大语言模型(LLM)和对话模式,用于构建高效的AI代理集群。
快速通过pip
安装Autogen,立即开始使用。
使用pip安装pyautogen库。# 使用pip安装所需的Python库
pip install pyautogen
点击全屏 | 点击退出全屏
一个简单的Autogen示例。
import os
from autogen import AssistantAgent, UserProxyAgent
llm_config = {"model": "gpt-4", "api_key": os.environ["OPENAI_API_KEY"]}
assistant = AssistantAgent("assistant", llm_config=llm_config)
user_proxy = UserProxyAgent("user_proxy", code_execution_config=False)
# 开始聊天吧
user_proxy.initiate_chat(
assistant,
message="给我讲个关于NVDA和特斯拉股票价格的笑话。",
)
全屏模式,退出全屏.
更多内容请参见他们的[官方文档](https://microsoft.github.io/autogen/docs/Getting-Started)。
GIF ![自动的 GIF](https://imgapi.imooc.com/66fa213c0a78ca5608000257.jpg)
给Autogen仓库点个赞⭐(https://github.com/microsoft/autogen)
zh: zh: 以下省略
## 6\. MindsDB - 一个使用企业数据构建AI的平台
如果你正在构建一个企业应用,MindsDB 应该是你的首选工具。它允许你实时部署、服务和微调模型,利用数据库、向量存储或应用程序中的数据来构建具备 AI 功能的应用程序——使用开发人员已经熟悉的通用工具进行。
它们作为连接桥梁,将存储在不同数据存储中的数据与流行的AI/ML框架(如LangChain、LlamaIndex和AutoML)连接起来。
通过Docker或Docker Desktop在本地安装MindsDB,按照链接里的说明操作。
这里有一个示例,它让你可以用日常语言查询数据源,就像你在跟人说话一样,这是一个将文本转换为SQL的工具。
-- 步骤 1. 连接数据源到 MindsDB
CREATE DATABASE data_source
WITH ENGINE = "postgres",
PARAMETERS = {
"user": "demo_user",
"password": "demo_password",
"host": "samples.mindsdb.com",
"port": "5432",
"database": "demo",
"schema": "demo_data"
};
SELECT *
FROM data_source.car_sales;
-- 步骤 2. 创建一个技能(技能类型为 text2sql)
CREATE SKILL my_skill
USING
type = 'text2sql',
database = 'data_source',
tables = ['car_sales'],
description = '不同车型的汽车销售数据';
SHOW SKILLS;
-- 步骤 3. 部署一个机器学习引擎
CREATE ML_ENGINE langchain_engine
FROM langchain
USING
openai_api_key = 'your openai-api-key';
-- 步骤 3. 创建一个对话模型
CREATE MODEL my_conv_model
PREDICT answer
USING
engine = 'langchain_engine',
model_name = 'gpt-4',
mode = 'conversational',
user_column = 'question' ,
assistant_column = 'answer',
max_tokens = 100,
temperature = 0,
verbose = True,
prompt_template = '以一种有帮助的方式回答用户输入的问题';
-- 查看模型描述
DESCRIBE my_conv_model;
-- 步骤 4. 创建一个代理(使用对话模型和技能)
CREATE AGENT my_agent
USING
model = 'my_conv_model',
skills = ['my_skill'];
-- 显示代理列表
SHOW AGENTS;
-- 步骤 5. 查询代理
SELECT *
FROM my_agent
WHERE question = '2018年的汽车平均价格是多少?'; -- 查询 2018 年汽车的平均价格
SELECT *
FROM my_agent
WHERE question = '2017年的汽车最高里程数是多少?'; -- 查询 2017 年汽车的最高里程数
SELECT *
FROM my_agent
WHERE question = '2016年销售的汽车中自动/半自动/手动档汽车的百分比是多少?'; -- 查询 2016 年销售的汽车中自动/半自动/手动档汽车的百分比
SELECT *
FROM my_agent
WHERE question = '2019年的汽车中汽油还是柴油更常见?'; -- 查询 2019 年汽车中汽油还是柴油更常见
SELECT *
FROM my_agent
WHERE question = '最常销售的汽车型号是什么?'; -- 查询最常销售的汽车型号
进入全屏 退出全屏
有关MindsDB的更多信息,请查看文档([https://docs.mindsdb.com/what-is-mindsdb](https://docs.mindsdb.com/what-is-mindsdb))。
这里有一个 Mindsdb 的 GIF 图片: ![Mindsdb GIF](https://imgapi.imooc.com/66fa21430a8251ce08000257.jpg)
[给 MindsDB 仓库点赞 ⭐](https://github.com/mindsdb/mindsdb)
zh: * * *
## 7\. FireCrawl - 将网站转换成适合LLM处理的数据
Firecrawl 是一个开源的爬虫工具,可以将任何网页转换成易于结构化的 Markdown 格式。这种格式可以用于多种应用,例如问答系统、模型微调等。
你可以使用他们的API来完成所有需要的操作。
这是爬取一个网页及其所有可访问子网页的方法。
curl -X POST https://api.firecrawl.dev/v1/crawl \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-d '{
"url": "https://docs.firecrawl.dev",
"limit": 100,
"scrapeOptions": {
"formats": ["markdown", "html"]
}
}'
该命令用于向火爬虫API发送POST请求,抓取指定URL的内容,并限制抓取数量为100。其中,`Authorization: Bearer fc-YOUR_API_KEY` 表示授权信息,`Content-Type: application/json` 表示请求体的格式为JSON,`url`、`limit` 和 `formats` 分别表示抓取的目标URL、抓取的限制数量和抓取的内容格式。
全屏模式 退出全屏
zh: 报废
curl -X POST https://api.firecrawl.dev/v1/scrape \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"url": "https://docs.firecrawl.dev",
"formats" : ["markdown", "html"]
}'
全屏 全屏退出
映射用于将网址映射到网站网址,以便获取网站地址。
curl -X POST https://api.firecrawl.dev/v1/map \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"url": "https://firecrawl.dev"
}'
全屏, 退出全屏
更多关于Firecrawl的信息,请查看[文档](https://docs.firecrawl.dev/introduction)。
GIF Firecrwal GIF(火焰虫)![Firecrwal GIF](https://imgapi.imooc.com/66fa21490a707f4408000257.jpg)
给FireCrawl仓库点个星⭐,点击这里(https://github.com/mendableai/firecrawl)
* * *
## 8\. LanceDB - **AI应用的向量知识库**
如果你正在构建AI应用,你将需要一个向量数据库来存储和检索如文本、图像和视频之类的结构化数据。与传统数据库不同,向量数据库存储这些数据的向量表示。
嵌入是数据的高维数值表示。向量数据库通过相似度评分等方法来检索相关数据。
LanceDb 是一个用 Typescript 编写的开源向量数据库,主要用于大规模的向量搜索、多模式支持、零复制、自动数据版本管理、基于 GPU 的查询加速等更多功能。
快来试试LanceDB吧
npm install @lancedb/lancedb
全屏模式/退出全屏
创建并查询向量数据库。
import * as lancedb from "@lancedb/lancedb";
const db = await lancedb.connect("data/sample-lancedb");
const table = await db.createTable("vectors", [
{ id: 1, vector: [0.1, 0.2], item: "foo", price: 10 },
{ id: 2, vector: [1.1, 1.2], item: "bar", price: 50 },
], {mode: 'overwrite'});
const query = table.vectorSearch([0.1, 0.3]).limit(2);
const results = await query.toArray();
// you can also use specific conditions to query rows without involving vector search.
const rowsByCriteria = await table.query().where("price >= 10").toArray();
// 例如,你可以通过特定条件查询行,比如价格大于等于10的行。
全屏,退出全屏
你可以在此处了解更多关于LanceDB的内容,他们的[文档](https://lancedb.github.io/lancedb/)里有说明。
GIF ![LanceDB GIF](https://imgapi.imooc.com/66fa214f0a84a0e208000273.jpg) (这是一张展示LanceDB功能的动态图)
给 LanceDB 仓库点个星 ⭐,链接: https://github.com/lancedb/lancedb
好了,各位!
* * *
[![开发者大会](https://imgapi.imooc.com/66fa2150091f0d8f08000100.jpg)](https://devfest.ai)
## 加入我们 Devfest 的活动,一起庆祝科技的未来
TL;DR,我们搞了一个超棒的活动,在这里你可以为任何AI项目提交代码并获得酷炫的周边。
加入我们:<https://devfest.ai>
规则很简单。
* 前往DevFest AI - 创建或加入现有的队伍。为任何包含AI的代码库贡献代码。
* 积累积分,活动结束时,积分最多的前100名将获得超赞的周边(这个数字可能会增加!)
* 在活动期间,我们还将举办一些有趣的周边抽奖活动。
分享你精彩的门票吧 🎫
[![票(Ticket)](https://imgapi.imooc.com/66fa215209cf2fb508080519.jpg)](https://imgapi.imooc.com/66fa215209cf2fb508080519.jpg)
共同学习,写下你的评论
评论加载中...
作者其他优质文章