Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 70 additions & 21 deletions docs/cn/sdk_user_guide/tools_user_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
## 环境要求

- Python 3.10+
- 已安装 AgentArts SDK:`pip install agentarts`
- 已安装 AgentArts SDK:`pip install agentarts-sdk`

## 认证配置

Expand All @@ -32,9 +32,9 @@ export HUAWEICLOUD_SDK_SK="your-secret-key"
2. 进入"我的凭证"页面
3. 在"访问密钥"标签页创建或查看 AK/SK

### API Key 配置
### 会话认证方式

CodeInterpreter 会话认证需要 API Key,可通过以下方式配置:
CodeInterpreter 会话使用 API Key 进行认证,可通过以下方式配置:

**方式一:环境变量配置(推荐)**

Expand All @@ -48,6 +48,7 @@ export HUAWEICLOUD_SDK_CODE_INTERPRETER_API_KEY="your-api-key"
# 在 start_session 中传递
client.start_session(
code_interpreter_name="my-code-interpreter",
session_name="my-session",
api_key="your-api-key"
)

Expand All @@ -56,6 +57,8 @@ with code_session("cn-southwest-2", "my-code-interpreter", api_key="your-api-key
client.execute_code("print('Hello')")
```

**注意**:如果代码解释器创建时使用了 `auth_type="IAM"`,则会话方法将自动使用 IAM 认证,无需传递 `api_key` 参数。

### 数据面端点配置

CodeInterpreter 数据面端点可以通过以下方式配置(按优先级排序):
Expand Down Expand Up @@ -84,7 +87,7 @@ CodeInterpreter 数据面端点可以通过以下方式配置(按优先级排
`code_session` 是一个上下文管理器,自动管理会话的启动和停止,推荐用于大多数场景:

```python
from agentarts.sdk.tools.code_interpreter.code_interpreter_client import code_session
from agentarts.sdk.tools import code_session

# 使用环境变量中的 API Key
with code_session("cn-southwest-2", "my-code-interpreter-name") as client:
Expand All @@ -111,7 +114,7 @@ with code_session("cn-southwest-2", "my-code-interpreter-name", api_key="your-ap
如果需要更细粒度的控制,可以手动管理会话:

```python
from agentarts.sdk.tools.code_interpreter.code_interpreter_client import CodeInterpreter
from agentarts.sdk.tools import CodeInterpreter

# 创建客户端
client = CodeInterpreter(region="cn-southwest-2")
Expand All @@ -127,7 +130,7 @@ session_id = client.start_session(
result = client.execute_code("print('Hello')")

# 停止会话
client.stop_session(api_key="your-api-key") # 可选
client.stop_session() # 可选
```

---
Expand All @@ -138,7 +141,7 @@ CodeInterpreter
### 初始化

```python
CodeInterpreter(region: Optional[str] = None, data_endpoint: Optional[str] = None)
CodeInterpreter(region: Optional[str] = None, data_endpoint: Optional[str] = None, auth_type: str = "API_KEY")
```

**参数说明**:
Expand All @@ -147,11 +150,12 @@ CodeInterpreter(region: Optional[str] = None, data_endpoint: Optional[str] = Non
|------|------|------|--------|------|
| region | str | 否 | 从环境变量获取 | 华为云区域名称 |
| data_endpoint | str | 否 | 从环境变量获取 | 数据面端点,优先从环境变量 AGENTARTS_CODEINTERPRETER_DATA_ENDPOINT 读取 |
| auth_type | str | 否 | "API_KEY" | 认证类型,支持 "API_KEY" 或 "IAM" |

**使用示例**:

```python
# 使用环境变量配置
# 使用环境变量配置(API Key 认证)
client = CodeInterpreter(region="cn-southwest-2")

# 通过参数指定数据面端点
Expand All @@ -160,6 +164,11 @@ client = CodeInterpreter(
data_endpoint="https://your-custom-endpoint.com"
)

# 使用 IAM 认证
client = CodeInterpreter(
region="cn-southwest-2",
auth_type="IAM"
)
```

### 功能特性
Expand All @@ -179,9 +188,9 @@ client = CodeInterpreter(
| 参数名 | 类型 | 描述 |
| --- | --- | --- |
|name |str| **Required** 代码解释器的名称,必须符合特定的命名规则|
|api_key_name |str| **Required** API Key 的名称|
|auth_type |str| 认证类型,支持 "API_KEY" 或 "IAM",默认 "API_KEY"|
|api_key_name |str| API Key 的名称,当 auth_type 为 "API_KEY" 时必填|
|description |str| 代码解释器的描述信息, default: `None`|
|auth_type |str| 认证类型,例如 "API_KEY", default: `None`|
|execution_agency_name |str| 执行机构的名称, default: `None`|
|observability |Dict| 可观测性配置,例如日志和监控设置, default: `None`|
|network_config |Dict| 网络配置,例如 VPC 和安全组设置, default: `None`|
Expand All @@ -204,11 +213,19 @@ client = CodeInterpreter(

**样例**
```python
# 使用 API Key 认证创建代码解释器
code_interpreter = client.create_code_interpreter(
name="my-code-interpreter",
auth_type="API_KEY",
api_key_name="my-api-key-name"
)
code_interpreter_id = code_interpreter["id"]

# 使用 IAM 认证创建代码解释器
code_interpreter = client.create_code_interpreter(
name="my-code-interpreter",
auth_type="IAM"
)
```

#### 2. 查询代码解释器列表
Expand Down Expand Up @@ -325,26 +342,32 @@ client.delete_code_interpreter(
| --- | --- | --- |
|code_interpreter_name |str| **Required** 代码解释器的名称,用于识别和管理会话,名称唯一|
|session_name |str| **Required** 会话名称|
|api_key |str| 认证使用的API Key,如果不提供则从环境变量HUAWEICLOUD_SDK_CODE_INTERPRETER_API_KEY中获取, default: `None`|
|api_key |str| 认证使用的API Key,如果代码解释器创建时使用 API_KEY 认证,则需要提供此参数;如果不提供则从环境变量HUAWEICLOUD_SDK_CODE_INTERPRETER_API_KEY中获取;如果代码解释器创建时使用 IAM 认证,则无需提供此参数, default: `None`|
|session_timeout |int| 会话超时时间,单位为秒,默认15分钟,最小值为60秒,最大值为86400秒(24小时), default: `900`|

**返回值**
session_id (str): 会话ID

**样例**
```python
# 使用环境变量中的 API Key
# 使用环境变量中的 API Key(代码解释器创建时使用 API_KEY 认证)
session_id = client.start_session(
code_interpreter_name="my-code-interpreter-name",
session_name="my-session-name"
)

# 传入 API Key
# 传入 API Key(代码解释器创建时使用 API_KEY 认证)
session_id = client.start_session(
code_interpreter_name="my-code-interpreter-name",
session_name="my-session-name",
api_key="your-api-key"
)

# 代码解释器创建时使用 IAM 认证,无需传入 api_key
session_id = client.start_session(
code_interpreter_name="my-code-interpreter-name",
session_name="my-session-name"
)
```

#### 7. 获取代码解释器会话详情
Expand All @@ -355,7 +378,7 @@ session_id = client.start_session(
| --- | --- | --- |
|code_interpreter_name |str| **Required** 代码解释器的名称,用于识别和管理会话,名称唯一|
|session_id |str| 会话ID,默认使用当前会话ID, default: `None`|
|api_key |str| 认证使用的API Key,如果不提供则从环境变量HUAWEICLOUD_SDK_CODE_INTERPRETER_API_KEY中获取, default: `None`|
|api_key |str| 认证使用的API Key,如果代码解释器创建时使用 API_KEY 认证,则需要提供此参数;如果不提供则从环境变量HUAWEICLOUD_SDK_CODE_INTERPRETER_API_KEY中获取;如果代码解释器创建时使用 IAM 认证,则无需提供此参数, default: `None`|

**返回值**
包含会话详情的字典:
Expand All @@ -367,6 +390,12 @@ session_id = client.start_session(

**样例**
```python
# 使用环境变量中的 API Key(代码解释器创建时使用 API_KEY 认证)
session_info = client.get_session(
code_interpreter_name="my-code-interpreter-name"
)

# 代码解释器创建时使用 IAM 认证,无需传入 api_key
session_info = client.get_session(
code_interpreter_name="my-code-interpreter-name"
)
Expand All @@ -378,17 +407,21 @@ session_info = client.get_session(
**参数**
| 参数名 | 类型 | 描述 |
| --- | --- | --- |
|api_key |str| 认证使用的API Key,如果不提供则从环境变量HUAWEICLOUD_SDK_CODE_INTERPRETER_API_KEY中获取, default: `None`|
|api_key |str| 认证使用的API Key,如果代码解释器创建时使用 API_KEY 认证,则需要提供此参数;如果不提供则从环境变量HUAWEICLOUD_SDK_CODE_INTERPRETER_API_KEY中获取;如果代码解释器创建时使用 IAM 认证,则无需提供此参数, default: `None`|

**返回值**
bool: 没有活跃会话时返回True,否则返回False

**样例**
```python
# 使用环境变量中的 API Key(代码解释器创建时使用 API_KEY 认证)
client.stop_session()

# 传入 API Key
# 传入 API Key(代码解释器创建时使用 API_KEY 认证)
client.stop_session(api_key="your-api-key")

# 代码解释器创建时使用 IAM 认证,无需传入 api_key
client.stop_session()
```

#### 9. 调用代码解释器会话
Expand All @@ -399,13 +432,24 @@ client.stop_session(api_key="your-api-key")
| --- | --- | --- |
|operate_type |str| **Required** 调用方法名,"execute_code"或"execute_command"等|
|arguments |Dict| **Required** 调用参数,根据operate_type不同而不同|
|api_key |str| 认证使用的API Key,如果不提供则从环境变量HUAWEICLOUD_SDK_CODE_INTERPRETER_API_KEY中获取, default: `None`|
|api_key |str| 认证使用的API Key,如果代码解释器创建时使用 API_KEY 认证,则需要提供此参数;如果不提供则从环境变量HUAWEICLOUD_SDK_CODE_INTERPRETER_API_KEY中获取;如果代码解释器创建时使用 IAM 认证,则无需提供此参数, default: `None`|

**返回值**
result[Dict]: 包含调用结果的字典

**样例**
```python
# 使用环境变量中的 API Key(代码解释器创建时使用 API_KEY 认证)
result = client.invoke(
operate_type="execute_code",
arguments={
"clear_context": False,
"code": "print('Hello, World!')",
"language": "python"
}
)

# 代码解释器创建时使用 IAM 认证,无需传入 api_key
result = client.invoke(
operate_type="execute_code",
arguments={
Expand Down Expand Up @@ -581,23 +625,28 @@ result = client.clear_context()
client.execute_code("print(x)")
```

### 上下文管理器
###上下文管理器
**方法名** `code_session`

**参数**
| 参数名 | 类型 | 描述 |
| --- | --- | --- |
|region |str| **Required** region名称,如"cn-southwest-2"|
|code_interpreter_name |str| **Required** 代码解释器名称|
|api_key |str| 认证使用的API Key,如果不提供则从环境变量HUAWEICLOUD_SDK_CODE_INTERPRETER_API_KEY中获取, default: `None`|
|auth_type |str| 认证类型,支持 "API_KEY" 或 "IAM",默认 "API_KEY"|
|api_key |str| 认证使用的API Key,如果代码解释器创建时使用 API_KEY 认证,则需要提供此参数;如果不提供则从环境变量HUAWEICLOUD_SDK_CODE_INTERPRETER_API_KEY中获取;如果代码解释器创建时使用 IAM 认证,则无需提供此参数, default: `None`|

**样例**
```python
# 使用环境变量中的 API Key
# 使用环境变量中的 API Key(代码解释器创建时使用 API_KEY 认证)
with code_session("cn-southwest-2", "my-code-interpreter-name") as client:
client.execute_code("print('Hello, World!')")

# 传入 API Key
# 传入 API Key(代码解释器创建时使用 API_KEY 认证)
with code_session("cn-southwest-2", "my-code-interpreter-name", api_key="your-api-key") as client:
client.execute_code("print('Hello, World!')")

# 使用 IAM 认证
with code_session("cn-southwest-2", "my-code-interpreter-name", auth_type="IAM") as client:
client.execute_code("print('Hello, World!')")
```
Loading
Loading