Files
aiagent/androidExampleDemo/README.md
renjianbo fab1767792 aa
2026-01-20 16:06:22 +08:00

231 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Android Agent调用示例 (Java版本)
这是一个使用Java开发的Android示例项目演示如何调用情感分析Agent。
## 📋 项目结构
```
androidExampleDemo/
├── app/
│ ├── src/
│ │ └── main/
│ │ ├── java/com/example/agentclient/
│ │ │ ├── MainActivity.java
│ │ │ ├── models/
│ │ │ │ ├── Agent.java
│ │ │ │ ├── AgentExecutionRequest.java
│ │ │ │ ├── ExecutionResponse.java
│ │ │ │ ├── ExecutionStatusResponse.java
│ │ │ │ └── TokenResponse.java
│ │ │ └── utils/
│ │ │ └── ApiClient.java
│ │ ├── res/
│ │ │ ├── layout/
│ │ │ │ └── activity_main.xml
│ │ │ ├── values/
│ │ │ │ └── strings.xml
│ │ │ └── xml/
│ │ │ └── network_security_config.xml
│ │ └── AndroidManifest.xml
│ └── build.gradle
├── build.gradle
├── settings.gradle
├── gradle.properties
└── README.md
```
## 🚀 快速开始
### 1. 配置API地址
`app/src/main/java/com/example/agentclient/utils/ApiClient.java` 中修改:
```java
private static final String BASE_URL = "http://your-server-ip:8037";
```
### 2. 配置登录信息
`MainActivity.java` 中修改:
```java
private static final String USERNAME = "admin";
private static final String PASSWORD = "123456";
private static final String AGENT_NAME = "情感分析Agent"; // Agent名称
```
### 3. 运行项目
1. 使用Android Studio打开项目
2. 同步Gradle依赖
3. 运行到Android设备或模拟器
## 📱 功能特性
- ✅ 用户登录
- ✅ 调用Agent API
- ✅ 实时显示执行状态
- ✅ 显示Agent回复
- ✅ 错误处理
## 🔧 依赖库
- Retrofit2网络请求
- OkHttpHTTP客户端
- GsonJSON解析
- AndroidXAndroid支持库
## 📝 使用说明
1. **登录**
- 应用启动后会自动登录(使用配置的用户名和密码)
- 登录成功后可以开始使用Agent
2. **发送消息**
- 在输入框中输入文本
- 点击"发送"按钮
- 等待Agent处理并返回结果
3. **查看结果**
- Agent的回复会显示在消息列表中
- 执行状态会实时更新
## 🔑 API说明
### 登录API
```
POST /api/v1/auth/login
Content-Type: application/x-www-form-urlencoded
username=admin&password=123456
```
### 执行Agent API
```
POST /api/v1/executions
Authorization: Bearer <token>
Content-Type: application/json
{
"agent_id": "agent-id",
"input_data": {
"query": "用户输入",
"USER_INPUT": "用户输入"
}
}
```
### 获取执行状态API
```
GET /api/v1/executions/{execution_id}/status
Authorization: Bearer <token>
```
### 获取执行结果API
```
GET /api/v1/executions/{execution_id}
Authorization: Bearer <token>
```
## 🎯 示例调用情感分析Agent
```java
// 1. 登录获取token
Call<TokenResponse> loginCall = ApiClient.getService().login("admin", "123456");
loginCall.enqueue(new Callback<TokenResponse>() {
@Override
public void onResponse(Call<TokenResponse> call, Response<TokenResponse> response) {
if (response.isSuccessful()) {
String token = "Bearer " + response.body().getAccessToken();
// 2. 通过名称查找Agent
Call<List<Agent>> agentsCall = ApiClient.getService()
.getAgents("情感分析Agent", 100, token);
agentsCall.enqueue(new Callback<List<Agent>>() {
@Override
public void onResponse(Call<List<Agent>> call, Response<List<Agent>> response) {
if (response.isSuccessful() && response.body() != null) {
String agentId = response.body().get(0).getId();
// 3. 执行Agent
Map<String, Object> inputData = new HashMap<>();
inputData.put("query", "这个产品真的很棒!");
inputData.put("USER_INPUT", "这个产品真的很棒!");
AgentExecutionRequest request = new AgentExecutionRequest(agentId, inputData);
Call<ExecutionResponse> execCall = ApiClient.getService()
.executeAgent(request, token);
execCall.enqueue(new Callback<ExecutionResponse>() {
@Override
public void onResponse(Call<ExecutionResponse> call,
Response<ExecutionResponse> response) {
if (response.isSuccessful()) {
String executionId = response.body().getId();
// 4. 轮询获取结果见MainActivity.pollExecutionResult方法
}
}
@Override
public void onFailure(Call<ExecutionResponse> call, Throwable t) {
// 处理错误
}
});
}
}
@Override
public void onFailure(Call<List<Agent>> call, Throwable t) {
// 处理错误
}
});
}
}
@Override
public void onFailure(Call<TokenResponse> call, Throwable t) {
// 处理错误
}
});
```
## 📦 构建要求
- Android Studio Hedgehog | 2023.1.1 或更高版本
- JDK 17 或更高版本
- Android SDK API 24 或更高版本
- Gradle 8.0 或更高版本
## 💻 开发语言
- **Java 17** - 主要开发语言
- 使用Retrofit进行网络请求
- 使用Gson进行JSON解析
## 🔒 安全注意事项
1. **不要硬编码密码**:生产环境应该使用安全的认证方式
2. **使用HTTPS**生产环境必须使用HTTPS
3. **Token管理**妥善保管和刷新Token
4. **网络安全配置**Android 9+需要配置网络安全策略
## 🐛 故障排除
### 问题1网络连接失败
- 检查API地址是否正确
- 检查设备网络连接
- 检查服务器是否运行
### 问题2登录失败
- 检查用户名和密码是否正确
- 检查服务器认证服务是否正常
### 问题3Agent执行失败
- 检查Agent ID是否正确
- 检查Agent是否已发布
- 查看服务器日志获取详细错误信息
## 📚 相关文档
- [Agent使用说明](../Agent使用说明.md)
- [API文档](../backend/API_DOCUMENTATION.md)