Tiger: 为你的AI代理提供脑机接口
设置 •
集成: crewAI 集成 • LangChain 集成 • AutoGen 集成 • Telegram 集成 •
资源: 当前工具 • 自定义工具(本地Docker) • 公共仪表板 •
什么是Tiger?
Tiger是一个社区驱动的项目,致力于为LLM代理革命开发可重用和集成的工具生态系统。它利用Upsonic进行孤立的工具存储、资料扩展和自动生成文档。使用Tiger,你可以创建一个自定义环境,或者利用由社区维护的强大公开Tiger 🐅。
详细信息
Tiger受到Neuralink的启发,提供了一个面向AI的计算机接口,通过线程连接到LLM接口。它为AIs提供了一个仅通过“思考”来控制计算机的平台。
使用Tiger,你的LLM代理可以编写和执行代码,使用搜索引擎,管理日历,控制鼠标和键盘,通过耳机讲话,等等。基本上,代理人所构想的任何事情,Tiger都会将其转化为具体行动。这体现了Tiger项目的核心理念——利用AI智能来产生实际行动并支持标准基础设施。我们的目标包括:
- 提供一个工具使用点,适用于利用函数调用机制的任何框架,
- 建立并培养一个科技与学科多样性的工具支持社区,
- 开发一个自由、开放且MIT许可的AI代理工具库。
设置
Tiger项目在tiger.upsonic.co提供了一个通用的公共使用库。其包含在tools
库中的工具。要使用这些工具,你可以使用upsonic Python库中的标准连接。在安装upsonic
库后,我们将使用Tiger对象并集成到你的代理中。
- Tiger需要Python版本在3.8或更高
pip3 install upsonic
当前工具
我们正在开发Upsonic,并且tools
文件夹内的工具会在每次发布时发送到公共Tiger。我们的目标是创建无需API密钥的工具,就像正常人类事件一样,例如使用鼠标、键盘和浏览器在谷歌上搜索。
-
应用程序
- 打开
- 关闭
-
浏览器
- 打开网址
-
解释器
- python
- 检查包
- 执行
- 安装软件包
- sh
- 执行
- python
-
搜索
- 谷歌
- duckduckgo
- 读取网站
-
系统
- 操作系统名称
- 架构
- python版本
- 剪贴板
- 复制
-
知识
- 放置
- 拉取
- 删除
- 索引
- 重置
-
通信
- telegram
- 以用户身份
- 删除消息
- 获取最新对话
- 获取最新消息
- 发送消息
- 登录
- 以用户身份
- telegram
如果你想为公共且强大的Tiger添加功能,请参阅添加工具部分。
公共仪表板
对于公共Tiger,你可以在tiger.upsonic.co查看功能及其文档和readmes。你也可以使用这个地方进行文档编写。
身份验证
- 用户名:tiger
- 密码:tiger
Tiger工具文档
感谢Upsonic,我们只需编写代码,它就会为我们提供一个存储系统,并提供每个功能的详细文档及CPU内存使用情况。你还可以搜索和在其他项目中使用功能。
身份验证
- 用户名:tiger
- 密码:tiger
crewAI 集成
Tiger项目的目标是能够适用于最流行的代理框架如crewAI
。在这个示例中,你可以看到为AI代理集成工具的最简单方法。我们正在询问Onur Atakan ULUSOY是谁并等待回复。
pip3 install crewai 'crewai[tools]'
# 获取Tiger工具
from upsonic import Tiger
tools = Tiger().crewai()
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4-0125-preview", api_key=OPENAI_API_KEY)
from crewai import Agent, Task, Crew, Process
researcher = Agent(
role='高级研究分析师',
goal='揭示AI和数据科学的前沿发展',
backstory="你毕业于大学的研究部门",
verbose=True,
allow_delegation=False,
tools=tools,
llm=llm
)
task1 = Task(
description="""Onur Atakan ULUSOY是谁""",
expected_output="Onur Atakan ULUSOY的详细分析报告并将报告放入知识库",
agent=researcher
)
crew = Crew(
agents=[researcher],
tasks=[task1],
verbose=2,
)
result = crew.kickoff()
LangChain 集成
pip3 install langchain langchain-openai
Tiger能够与LangChain代理共享工具进行协作,这样你的代理将能够使用Tiger功能。在这个示例中,我们询问了一个乘法问题,代理将使用Tiger,然后编写一个Python代码,Tiger将返回结果。这样代理就能仅用两行代码执行数学运算。
# 获取Tiger工具
from upsonic import Tiger
tools = Tiger().langchain
# 使用Tiger工具集生成代理和执行器
from langchain_openai import ChatOpenAI
from langchain import hub
from langchain.agents import AgentExecutor, create_openai_functions_agent
llm = ChatOpenAI(model="gpt-4-0125-preview", api_key=OPENAI_API_KEY)
prompt = hub.pull("hwchase17/openai-functions-agent")
agent = create_openai_functions_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
# 询问15231 * 64231的结果
agent_executor.invoke({"input": "15231 * 64231 的结果是多少"})
AutoGen 集成
pip3 install pyautogen
Tiger还与AutoGen代理集成。在这些示例中,我们将使用'interpreter.python'模块,这样你的autogen代理就能够运行和查看Python代码的结果。这样你的代理就可以按我们的要求等待2秒。
# 使用Tiger工具集生成代理
from typing_extensions import Annotated
import autogen
config_list = [
{
'model': 'gpt-4-0125-preview',
'api_key': OPENAI_API_KEY,
},
]
llm_config = {
"config_list": config_list,
"timeout": 120,
}
chatbot = autogen.AssistantAgent(
name="chatbot",
system_message="对于编码任务,只使用所提供的功能。任务完成时回复 'TERMINATE'。",
llm_config=llm_config,
)
user_proxy = autogen.UserProxyAgent(
name="user_proxy",
is_termination_msg=lambda x: x.get("content", "") and x.get("content", "").rstrip().endswith("TERMINATE"),
human_input_mode="NEVER",
max_consecutive_auto_reply=10,
)
# 获取Tiger工具
from upsonic import Tiger
Tiger().autogen(chatbot, userproxy)
# 询问等待2秒
user_proxy.initiate_chat(
chatbot,
message="Upsonic.co是什么",
)
登录Telegram
希望在其LLM代理中使用Telegram功能的用户必须在所有操作之前触发登录功能。为此,你可以使用此功能,它会要求输入电话号码和验证码。
from upsonic import Tiger
Tiger().get("communication.telegram.as_user.signin__user")()
添加工具
Tiger项目对任何公共Tiger的贡献都持开放态度,此外,我们还提供了另一种创建自己的Tger的方法。要添加公共Tiger,你需要在你的新工具上创建一个pull request。
-
在
tiger/tools
目录中创建一个Python文件。 例如:tiger/tools/interpreter/python/execute.py
-
按以下格式编写函数
#imports
def my_function(query:str) -> str:
return query + " hi"
tool_name = "test.my_function"
tool_obj = my_function
tool_requirements = ["beautifulsoup4==4.12.3"]
- 创建pull request。当它被合并时,它将在公共Tiger和仪表板中可用。
创建你的Tiger
要创建你自己的Tiger,你应该安装Upsonic本地Docker容器。它将提供一个查看你自己工具的仪表板,并自动生成文档。之后,你应该使用Upsonic客户端连接你的本地服务器,为此你应该从你的仪表板获取连接代码,最后你可以在upsonic客户端中使用Tiger功能。
#from upsonic import Tiger
#Tiger().autogen(chatbot, userproxy)
# 改为
#你的Upsonic连接代码
upsonic.autogen(chatbot, userproxy)