9 个必须了解的开源库,助您面向未来🎯
我从事软件行业已有六七年,但事情变化比以往任何时候都快。人工智能正在从根本上改变我们编写软件的方式。
您不再受限于现有的技术和框架。Chatgpt 让您能够更轻松地使用任何所需的技术来构建复杂、高性能且面向未来的应用程序。
我编制了一份开源存储库列表,您可以在应用程序中实现这些存储库以构建面向未来的应用程序。
1. Composio:AI集成和工具平台
人工智能无处不在,未来任何现代应用程序都需要某种形式的人工智能自动化。Composio 是将人工智能工作流添加到应用程序的最佳选择。
它集成了 100 多种第三方服务,例如 GitHub、Slack、Discord、Salesforce 等。您可以连接 GPT-4 和 Gemini 等人工智能模型,以自动化繁琐重复的工作。
例如,
- 您可以构建全面的客服人员,与 Slack 和 Discord 上的用户互动。回复咨询、指导用户完成支持流程或安排后续行动。
- 您可以构建编码代理,以从 Jira 票证自动修复 GitHub 中的错误。
- 建立个人助理来处理会议和活动。
Composio 非常容易上手。
pip install composio-core
添加 GitHub 集成。
composio add github
Composio 代表您处理用户身份验证和授权。
以下是如何使用 GitHub 集成来为存储库加注星标的方法。
from openai import OpenAI
from composio_openai import ComposioToolSet, App
openai_client = OpenAI(api_key="******OPENAIKEY******")
# Initialise the Composio Tool Set
composio_toolset = ComposioToolSet(api_key="**\\\\*\\\\***COMPOSIO_API_KEY**\\\\*\\\\***")
## Step 4
# Get GitHub tools that are pre-configured
actions = composio_toolset.get_actions(actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER])
## Step 5
my_task = "Star a repo ComposioHQ/composio on GitHub"
# Create a chat completion request to decide on the action
response = openai_client.chat.completions.create(
model="gpt-4-turbo",
tools=actions, # Passing actions we fetched earlier.
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": my_task}
]
)
运行此 Python 脚本以使用代理执行给定的指令。
Composio 与 LangChain、LlamaIndex、CrewAi 等著名框架兼容。
欲了解更多信息,请访问官方 文档,欲查看更复杂的示例,请参阅存储库的 示例 部分。
2. Encore:事件驱动和分布式系统让
如果您是一家初创公司,正在寻找用于构建强大的分布式应用程序的后端框架,那么您的搜索到此结束。
开发云应用程序通常会变得混乱,开发人员需要努力有效地管理和协调资源。
Encore 简化了这一过程,使得构建可扩展的事件驱动系统变得更加容易,而且没有通常的复杂性。
Encore 通过提供集成类型安全后端框架、自动基础设施配置和 DevOps 自动化的统一开发平台来简化这一混乱局面。
它在 Golang 和 Typescript 中均可用。
通过安装 CLI 开始使用 Encore。
curl -L https://encore.dev/install.sh | bash
创建一个应用程序。
encore app create
这将配置您的免费帐户,允许您选择应用程序的名称并选择 Hello World
模板。
这将使用您选择的应用程序名称创建一个包含示例应用程序和简单 REST API 的新文件夹。
在编辑器中打开该文件。
// Service hello implements a simple hello world REST API.
package hello
import (
"context"
)
// This simple REST API responds with a personalized greeting.
//
//encore:api public path=/hello/:name
func World(ctx context.Context, name string) (*Response, error) {
msg := "Hello, " + name + "!"
return &Response{Message: msg}, nil
}
type Response struct {
Message string
}
有关更多信息,请参阅其 文档。
3. AssemblyScript - 类似 Typescript 的 WebAssembly 语言
使用 Web Assembly 或 WASM 构建应用程序以提供 Web 原生体验的趋势日益增长,尤其是对于动画、游戏、编辑器等计算密集型任务。
如果您想构建类似的应用程序,AssemblyScript 是一个不错的选择。
它是一种类似 TypeScript 的语言, 使用 **Binaryen ** 而不是 JS编译为WebAssembly 。
它与 JS/TS 语法紧密相关,非常适合开发人员无需学习低级语言即可构建近乎原生的 Web 应用程序。
使用 Assembly 脚本很容易上手。
npm install --save-dev assemblyscript
安装后,编译器会提供一个方便的脚手架实用程序,以便在当前目录中快速建立一个新项目:
npx asinit .
该 asinit
命令自动创建推荐的目录结构和配置文件:
assembly/index.ts
现在可以通过调用构建命令将中的示例 编译为 WebAssembly:
npm run asbuild
这样做会将编译的二进制文件、绑定和定义文件发送到 build/
目录中。
生成的测试用例 tests/index.js
可以通过以下方式执行:
npm test
一旦构建完成,该目录将包含使用该模块的所有内容,就像任何其他现代 Node.js ESM 模块一样:
import * as myModule from "myModule";
生成的代码 index.html
展示了如何在 Web 上使用模块。一个服务于模块目录的 Web 服务器(默认为 display index.html
)可以通过以下命令启动:
npm start
有关 AssemblyScript 的更多信息,请参阅其存储库。
4. Godot:多平台 2D 和 3D 游戏引擎
游戏产业价值数千亿美元,预计未来还会持续增长。多项调查显示,过去十年,年轻人的游戏时间大幅增长。
如果您想开发游戏,Godot 将是一个不错的选择。它用 C 语言编写,而且用途广泛。使用 Godot,您甚至可以构建动画、AR/VR 和模拟软件。
使用 Godot 构建的游戏可以轻松导出到 Web、MacOS、Linux、Windows、Android、iOS 和主机平台。借助游戏引擎,您还可以构建计算密集型应用程序,例如照片编辑器、动画等。
更多信息请参阅其官方 文档。
5. Gitpod——按需云开发平台
如果您正在为团队寻找基于云的开发环境,那么您的搜索就到此结束了。Gitpod 是一个开源开发环境,可以自动设置编码环境。
Gitpod 提供自动化和标准化的开发环境,可在您的云或本地机器上自托管运行。
有关 Gitpod 的更多信息,请参阅其官方文档。
6. Turborepo - 针对 JS/TS 优化的 Mono 仓库管理系统
随着软件规模的增长,构建 Mono 软件仓库会变得愈发困难。如果管理不善,它甚至会变成一场噩梦。
Turborepo 解决了 Mono 仓库的扩展问题。它是一款专为 JS/TS 应用设计的高性能构建工具,旨在加速 单包工作区中的工作流程。
主要特点
- 增量构建:仅重建代码库的更改部分以节省时间。
- Monorepo 管理:针对管理单个存储库中的多个项目进行了优化。
- 缓存:利用本地和远程缓存来避免冗余构建。
- 并行执行:同时运行测试和构建等任务以获得更快的结果。
快速上手。
npx create-turbo@latest
启动存储库将包含以下内容:
- 两个可部署的应用程序
- 三个共享库,供其余 monorepo 使用
npm install turbo --global
turbo
一旦全局安装完毕,你就可以从终端运行脚本 ,
更多信息请参阅文档页面。
7. Tauri——为桌面构建极速应用程序
Tauri 是一个轻量级、快速且安全的框架,用于使用 HTML、CSS 和 JavaScript 等 Web 技术构建跨平台应用程序。该应用程序的后端是一个基于 Rust 的二进制文件,并带有一个可与前端交互的 API。
主要特点
- 为多个平台构建应用程序:Windows、MacOS 和 Linux。
- 它使用系统的WebView,避免捆绑浏览器。
- 核心采用 Rust 构建,以确保隐私和速度。
- 支持 Svelte、react、Vue 等 JS/TS 框架。
查看文档以了解有关Tauri 的更多信息。
8. gRPC -一个 RPC 库和框架
REST API 不足以构建快速、分布式、低延迟的微服务。您需要快速且强大的功能,而 gRPC 正是您的理想之选。
它是 Google 的一款开源工具,旨在实现跨平台和跨语言的服务之间的高效通信。它使用 HTTP/2 和协议缓冲区 (protobufs) 进行序列化。
主要特点
- gRPC 使用 HTTP/2,允许通过单个连接多路复用多个请求,从而减少延迟并提高性能。
- gRPC 支持多种编程语言。
- gRPC 支持双向流式传输,实现客户端和服务器之间的实时数据交换。
查看文档以了解更多信息。
9. Mem0:AI 应用的内存层
构建人工智能应用的一大挑战是内存处理。这涉及到高效存储和智能检索过去的交互,从而显著提升用户体验。
Mem0 让开发者能够更轻松地为 AI 应用添加内存层。它能够记住用户偏好,适应个人需求并持续改进,使其成为客服聊天机器人、AI 助手和自主系统的理想选择。
通过安装开始使用 Mem0 pip
。
pip install mem0ai
初始化Mem0
from mem0 import Memory
m = Memory()
内存操作。
# 1. Add: Store a memory from any unstructured text
result = m.add("I am working on improving my tennis skills. Suggest some online courses.", user_id="alice", metadata={"category": "hobbies"})
# Created memory --> 'Improving her tennis skills.' and 'Looking for online suggestions.'
# 2. Update: update the memory
result = m.update(memory_id=<memory_id_1>, data="Likes to play tennis on weekends")
# Updated memory --> 'Likes to play tennis on weekends.' and 'Looking for online suggestions.'
# 3. Search: search related memories
related_memories = m.search(query="What are Alice's hobbies?", user_id="alice")
# Retrieved memory --> 'Likes to play tennis on weekends'
# 4. Get all memories
all_memories = m.get_all()
memory_id = all_memories["memories"][0] ["id"] # get a memory_id
# All memory items --> 'Likes to play tennis on weekends.' and 'Looking for online suggestions.'
# 5. Get memory history for a particular memory_id
history = m.history(memory_id=<memory_id_1>)
# Logs corresponding to memory_id_1 --> {'prev_value': 'Working on improving tennis skills and interested in online courses for tennis.', 'new_value': 'Likes to play tennis on weekends' }
有关 Mem0 功能的更多信息,请参阅其官方 文档。
更多信息请参阅官方 文档。
感谢您的阅读。
文章来源:https://dev.to/composiodev/9-must-know-open-source-libraries-to-future-proof-yourself-f95