尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

昇腾AI赋能智能分享Agent

昇腾AI赋能智能分享Agent 针对金融行业应用Agent黑客松竞赛基于昇腾Ascend硬件与AtomGit AI官方平台实现一个安卓手机聊天应用使其能通过微信的复制功能及通讯录中的复制操作智能识别并分享文字内容。核心是利用AtomGit上的开源多模态AI模型如Open-AutoGLM构建一个能理解屏幕内容并执行操作的智能体Agent。一、系统架构与实施步骤项目采用“感知-决策-执行”的智能体架构自动捕获安卓系统剪贴板变化理解上下文并触发分享。1. 整体架构与组件| 层级 | 组件 | 职责说明 || :--- | :--- | :--- ||感知层|剪贴板监听服务| 安卓后台服务持续监听系统剪贴板ClipboardManager的内容变化当检测到新文本时触发后续流程。 ||决策层|上下文理解Agent| 调用部署在昇腾NPU上的AtomGit开源模型如GLM-4.6V或GLM系列分析剪贴板文本的语义、来源如判断是否来自微信聊天窗口或通讯录详情页和用户意图是否适合分享。 ||执行层|自动化操作Agent| 基于Open-AutoGLM等模型提供的自动化能力生成操作指令模拟用户点击打开目标应用如微信、短信的分享界面并填入处理后的文本。 ||平台层|昇腾NPU推理服务|在本地或边缘服务器部署AtomGit开源模型利用昇腾CANN进行高性能、低延迟推理为决策层和执行层提供AI能力支撑。 ||应用层|安卓聊天应用| 提供用户界面用于启用/禁用Agent、查看分享历史、配置分享规则等。 |2. 关键实施代码示例a. 安卓端剪贴板监听与内容捕获在安卓应用中注册一个后台服务来监听剪贴板变化。// ClipboardMonitorService.kt import android.app.Service import android.content.ClipboardManager import android.content.ClipData import android.content.Intent import android.os.IBinder import kotlinx.coroutines.*import okhttp3.* // 用于与本地AI服务通信 import java.io.IOException class ClipboardMonitorService : Service() { private lateinit var clipboardManager: ClipboardManager private val client OkHttpClient() private val scope CoroutineScope(Dispatchers.IO) override fun onCreate() { super.onCreate() clipboardManager getSystemService(CLIPBOARD_SERVICE) as ClipboardManager // 添加剪贴板变化监听器 clipboardManager.addPrimaryClipChangedListener(clipboardListener) } private val clipboardListener ClipboardManager.OnPrimaryClipChangedListener { val clipData: ClipData? clipboardManager.primaryClip clipData?.let { if (it.itemCount 0) { val text it.getItemAt(0).text?.toString() text?.let { copiedText - // 当复制到新文本时触发AI分析 scope.launch { analyzeAndShare(copiedText) } } } } } private suspend fun analyzeAndShare(copiedText: String) { // 1. 调用本地部署的昇腾NPU推理服务分析文本上下文和意图 val analysisResult callAIAnalysisService(copiedText) // 2. 如果AI判断需要且适合分享则执行自动化分享操作 if (analysisResult.shouldShare) { executeAutoShare(analysisResult.processedText, analysisResult.targetApp) } } private suspend fun callAIAnalysisService(text: String): AnalysisResult { // 构建请求调用运行在昇腾服务器上的AtomGit模型服务 val requestBody FormBody.Builder() .add(text, text) .add(task, context_and_intent_analysis) .build() val request Request.Builder() .url(http://{your_ascend_server_ip}:8080/v1/analyze) // 昇腾NPU服务地址 .post(requestBody) .build() return withContext(Dispatchers.IO) { try { val response client.newCall(request).execute() // 解析返回的JSON示例{shouldShare: true, processedText: 精简后的文本, targetApp: wechat} val json response.body?.string() // 简化的解析逻辑 if (json?.contains(\shouldShare\: true) true) { AnalysisResult(true, extractProcessedText(json), extractTargetApp(json)) } else { AnalysisResult(false, text, ) } } catch (e: IOException) { e.printStackTrace() AnalysisResult(false, text, ) } } } private fun executeAutoShare(text: String, targetApp: String) { // 使用无障碍服务(AccessibilityService)或UI Automator执行自动化操作 // 此处以启动微信并填充剪贴板文本到输入框为例 val intent packageManager.getLaunchIntentForPackage(com.tencent.mm) intent?.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) startActivity(intent) // 在实际应用中此处需集成Open-AutoGLM的自动化指令来模拟点击、输入等操作 // 例如通过AccessibilityService找到微信聊天输入框并设置文本 // accessibilityService?.performGlobalAction(GLOBAL_ACTION_PASTE) } data class AnalysisResult(val shouldShare: Boolean, val processedText: String, val targetApp: String) // ... onDestroy中移除监听器等 }b. 昇腾NPU服务端上下文理解与决策在昇腾服务器上部署AtomGit的GLM系列模型提供分析API。# ascend_ai_service.py from flask import Flask, request, jsonify import acl # 昇腾计算语言库 import json app Flask(__name__) # 初始化昇腾模型示例需根据实际模型调整 class AscendContextAnalyzer: def __init__(self, model_path): # 初始化ACL加载模型例如GLM-4.6V的量化版本 ret acl.init() self.model_id, ret acl.mdl.load_from_file(model_path) # ... 创建模型描述准备输入输出内存 def analyze(self, text): 分析剪贴板文本。 返回是否分享、处理后的文本、目标应用。 # 1. 预处理文本 processed_text self._preprocess(text) # 2. 使用NPU进行推理判断意图和上下文 # 例如判断文本是否来自微信聊天包含“微信”关键词或特定格式或通讯录包含“电话”、“联系人” input_data self._prepare_input(processed_text) output_data self._infer_on_npu(input_data) # NPU推理 # 3. 解析模型输出 intent self._parse_output(output_data) should_share False target_app # 规则示例如果文本是短消息且非敏感信息则建议分享到微信 if intent.get(source) in [wechat, contacts] and intent.get(is_shareable): should_share True target_app wechat # 默认分享到微信可根据意图调整 # 对文本进行智能摘要或脱敏处理如去除电话号码 final_text self._summarize_or_sanitize(processed_text, intent) else: final_text processed_text return { shouldShare: should_share, processedText: final_text, targetApp: target_app } analyzer AscendContextAnalyzer(/path/to/glm_model.om) app.route(/v1/analyze, methods[POST]) def analyze_text(): data request.form text data.get(text, ) if not text: return jsonify({error: No text provided}), 400 result analyzer.analyze(text) return jsonify(result) if __name__ __main__: app.run(host0.0.0.0, port8080)c. 自动化执行集成利用AtomGit上开源的Open-AutoGLM项目实现安卓端的自动化操作。# 自动化操作配置文件 (auto_operations.yaml) tasks: - name: share_to_wechat steps: action: launch_app params: package_name: com.tencent.mm - action: wait_for_element params: element_id: com.tencent.mm:id/chat_input # 微信输入框ID - action: set_text params: text: {processed_text} # 由AI服务返回的处理后文本 - action: click params: element_id: com.tencent.mm:id/send_btn # 发送按钮在安卓应用中可以调用Open-AutoGLM的引擎来解析并执行上述YAML中定义的任务流。二、需达到的竞赛要求| 要求维度 | 具体指标与说明 || :--- | :--- ||功能完整性| 1.精准触发能可靠监听来自微信聊天窗口和安卓系统通讯录详情页的“复制”操作并捕获文本。2.智能理解利用昇腾NPU加速的AtomGit模型如GLM-4.6V准确判断文本上下文如区分闲聊文字与重要地址、金额信息和分享意图避免误分享。3.自动化执行集成Open-AutoGLM等自动化框架能自动打开微信或指定应用并完成粘贴、发送等操作无需人工干预。 ||性能与体验| 1.低延迟从复制到触发AI分析再到准备分享端到端延迟应** 2秒**其中昇腾NPU推理延迟** 300ms**。2.低功耗安卓端后台监听服务需优化避免频繁唤醒和耗电。 ||安全与合规| 1.隐私保护所有剪贴板内容分析均在本地或受信任的边缘昇腾服务器完成不上传至公网。2.用户授权首次使用需明确告知用户并获取“无障碍服务”和“剪贴板读取”权限。 ||创新与实用性|1.场景贴合针对金融行业可特别优化对金额、账号、合同摘要等敏感信息的识别与脱敏处理。2.可扩展性Agent架构支持轻松扩展新的来源应用如邮件、钉钉和分享目标。 ||工程化与部署| 1.AtomGit开源项目代码、模型适配代码及部署脚本需完整提交至AtomGit AI官方平台并包含清晰的README。2.昇腾适配提供完整的CANN模型转换ONNX-OM与推理代码证明其在昇腾硬件上的高效运行。 |参考来源GLM-5大模型在AtomGit平台的AI应用实践与优化GitCode 10月G-Star Landscape 3.0 更新。AtomGit 全新升级暨人工智能开源社区发布会举行。不仅是技术突围从智谱 AtomGit 开源矩阵看国产开源如何用数据讲故事智谱开源天团登陆 AtomGit4 大模型覆盖多模态全场景微信 openclaw 集成方案让微信成为你的 AI 助手
返回列表