<<<<<<< HEAD
Android Agent调用示例 (Java版本)
这是一个使用Java开发的Android示例项目,演示如何调用情感分析Agent。
Android Agent调用示例
这是一个Android示例项目,演示如何调用情感分析Agent。
📋 项目结构
<<<<<<< HEAD
androidExampleDemo/
=======
androidExample/
>>>>>>> 7c5f94d47066e9f9fb4cd23e74fe34d53d326684
├── app/
│ ├── src/
│ │ └── main/
│ │ ├── java/com/example/agentclient/
<<<<<<< HEAD
│ │ │ ├── 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
=======
│ │ │ ├── MainActivity.kt
│ │ │ ├── AgentService.kt
│ │ │ ├── models/
│ │ │ │ ├── AgentRequest.kt
│ │ │ │ ├── AgentResponse.kt
│ │ │ │ └── ExecutionResponse.kt
│ │ │ └── utils/
│ │ │ └── ApiClient.kt
│ │ └── res/
│ │ ├── layout/
│ │ │ └── activity_main.xml
│ │ └── values/
│ │ └── strings.xml
│ └── build.gradle.kts
├── build.gradle.kts
├── settings.gradle.kts
>>>>>>> 7c5f94d47066e9f9fb4cd23e74fe34d53d326684
└── README.md
🚀 快速开始
1. 配置API地址
<<<<<<< HEAD
在 app/src/main/java/com/example/agentclient/utils/ApiClient.java 中修改:
private static final String BASE_URL = "http://your-server-ip:8037";
2. 配置登录信息
在 MainActivity.java 中修改:
private static final String USERNAME = "admin";
private static final String PASSWORD = "123456";
private static final String AGENT_NAME = "情感分析Agent"; // Agent名称
=======
在 `app/src/main/java/com/example/agentclient/utils/ApiClient.kt` 中修改:
```kotlin
private const val BASE_URL = "http://your-server-ip:8037"
2. 配置Agent ID
在 MainActivity.kt 中修改:
private val AGENT_ID = "your-agent-id" // 情感分析Agent的ID
>>>>>>> 7c5f94d47066e9f9fb4cd23e74fe34d53d326684
3. 运行项目
- 使用Android Studio打开项目
- 同步Gradle依赖
- 运行到Android设备或模拟器
📱 功能特性
- ✅ 用户登录
- ✅ 调用Agent API
- ✅ 实时显示执行状态
- ✅ 显示Agent回复
- ✅ 错误处理
🔧 依赖库
- Retrofit2:网络请求
- OkHttp:HTTP客户端
- Gson:JSON解析 <<<<<<< HEAD
- AndroidX:Android支持库 =======
- Coroutines:异步处理
📝 使用说明
-
登录
- 应用启动后会自动登录(使用配置的用户名和密码)
- 登录成功后可以开始使用Agent
-
发送消息
- 在输入框中输入文本
- 点击"发送"按钮
- 等待Agent处理并返回结果
-
查看结果
- 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
<<<<<<< HEAD
// 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) {
// 处理错误
}
});
=======
```kotlin
// 1. 登录获取token
val token = agentService.login("admin", "123456")
// 2. 执行Agent
val execution = agentService.executeAgent(
agentId = "sentiment-analysis-agent-id",
userInput = "这个产品真的很棒!"
)
// 3. 轮询获取结果
while (true) {
val status = agentService.getExecutionStatus(execution.id)
if (status.status == "completed") {
val result = agentService.getExecutionResult(execution.id)
println("情感分析结果: ${result.output_data}")
break
}
delay(1000) // 等待1秒
}
>>>>>>> 7c5f94d47066e9f9fb4cd23e74fe34d53d326684
📦 构建要求
- Android Studio Hedgehog | 2023.1.1 或更高版本
- JDK 17 或更高版本
- Android SDK API 24 或更高版本
- Gradle 8.0 或更高版本
<<<<<<< HEAD
💻 开发语言
- Java 17 - 主要开发语言
- 使用Retrofit进行网络请求
- 使用Gson进行JSON解析
=======
🔒 安全注意事项
- 不要硬编码密码:生产环境应该使用安全的认证方式
- 使用HTTPS:生产环境必须使用HTTPS
- Token管理:妥善保管和刷新Token
- 网络安全配置:Android 9+需要配置网络安全策略
🐛 故障排除
问题1:网络连接失败
- 检查API地址是否正确
- 检查设备网络连接
- 检查服务器是否运行
问题2:登录失败
- 检查用户名和密码是否正确
- 检查服务器认证服务是否正常
问题3:Agent执行失败
- 检查Agent ID是否正确
- 检查Agent是否已发布
- 查看服务器日志获取详细错误信息