Lybic Docs

快速开始

开始使用 Lybic Python SDK

本指南将带您了解安装和使用 Lybic Python SDK 的基础步骤。

安装

最新版本:version

首先,从 PyPI 安装最新的 SDK :

pip install --upgrade lybic

初始化

接下来,在您的 Python 应用程序中初始化客户端。为了更好的安全性,推荐使用环境变量(LYBIC_ORG_IDLYBIC_API_KEY)。

import asyncio
from lybic import LybicClient, LybicAuth

# LybicClient 默认会从您的环境中获取凭证
# def __init__(self,
#             auth: LybicAuth(
#             org_id: str = os.getenv("LYBIC_ORG_ID"),
#             api_key: str = os.getenv("LYBIC_API_KEY"),
#             endpoint: str = os.getenv("LYBIC_API_ENDPOINT", "https://api.lybic.cn"),
#             ),
#             timeout: int = 10,
#             max_retries: int = 3,
#             extra_headers: dict | None = None) -> None
async def main():
    # 方式一:使用环境变量初始化(推荐)
    async with LybicClient() as client:
        pass

    # 方式二:使用显式凭证初始化
    async with LybicClient(
        LybicAuth(
            org_id="your_org_id", # Lybic 组织 ID
            api_key="your_api_key", # Lybic API 密钥
            endpoint="https://api.lybic.cn", # Lybic API 端点
            extra_headers={"User-Agent": "MyAgent/1.0"}, # 自定义标头
         ),
        timeout=10, # API 请求超时
        max_retries=3, # 最大请求重试次数
    ) as client:
        pass

if __name__=='__main__':
    asyncio.run(main())

核心工作流

客户端初始化后,典型的工作流遵循以下逻辑步骤:

  1. 注册(或加入)组织:Lybic 允许您注册“组织”来管理您的项目和资源。
  2. 创建项目(Project):项目是组织工作的主要方式。它们充当沙箱、团队成员和密钥的容器。
  3. 启动沙箱:在项目内,您可以启动 GUI 沙箱。这是您智能体的安全的云端执行环境。
  4. 自动化和交互:一旦沙箱运行,您的智能体就可以开始工作。SDK 提供了与沙箱交互所需的所有工具,从执行命令到捕获截图。

Hello World

以下示例展示如何创建一个沙箱:

import asyncio
from lybic import LybicClient, Sandbox

async def main():
    async with LybicClient() as client:
        sandbox = Sandbox(client)
        new_sandbox = await sandbox.create(name="my-sandbox", shape="xxx")
        print(new_sandbox)

if __name__ == '__main__':
    asyncio.run(main())

异常处理

为了代码的健壮性,所有异常都需要由您处理。将您的 SDK 调用包装在 try...except 块中:

import asyncio
from lybic import LybicClient, Sandbox

async def main():
    async with LybicClient() as client:
        try:
            preview_result = await sandbox.preview('sandbox_id')
            print(preview_result)
        except Exception as e:
            print(f"发生错误: {e}")

if __name__ == '__main__':
    asyncio.run(main())

本页内容