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

资讯详情

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

昇腾Model-Agent端云协同架构解析

昇腾Model-Agent端云协同架构解析 针对昇腾Model-Agent模型适配大赛第二季若需在安卓手机应用App中集成百度AI服务如图文生成其核心方案是构建一个端云协同的AI Agent架构。该架构将昇腾NPU的本地推理能力与云端百度AI的丰富服务相结合通过一个云端Agent进行编排和调度最终在安卓客户端呈现结果。###一、核心架构设计整个系统可分为三个层次协同工作流程如下层级组件/技术核心职责关键技术点云端AI Agent服务Python FastAPI1. 接收安卓端请求。2.调用百度AI API如文心一言/ERNIE-ViLG进行提示词优化或直接生成。3. 编排任务流必要时调用本地昇腾模型。4. 将结果如Base64图片或文本返回给客户端。FastAPI框架、百度千帆SDK (aip)、网络请求库 (requests)。昇腾模型适配层Ascend CANN ATC工具1. 将原始模型如PyTorch的Stable Diffusion通过ATC工具转换为昇腾NPU支持的OM模型。2. 提供C/Python推理接口供云端Agent服务调用。模型转换ATC、离线推理AscendCL、性能优化。安卓客户端Kotlin/Java Retrofit1. 提供用户交互界面输入文本提示。2. 通过Retrofit向云端Agent服务发起网络请求。3. 接收并解析响应展示生成的图片或文本。Retrofit网络库、Base64图片解码、UI更新主线程。二、关键步骤与代码实现1. 云端AI Agent服务开发使用FastAPI搭建一个Web服务作为连接客户端和AI能力的枢纽。# main.py from fastapi import FastAPI, HTTPException from pydantic import BaseModel from typing import Optional import requests import base64 import json # 假设已安装pip install fastapi uvicorn baidu-aipfrom aip import AipImageClassify, AipNlp # 百度AI Python SDK示例 app FastAPI(titleAscend-Baidu AI Agent) # 配置信息 (应从环境变量或配置文件中读取) BAIDU_APP_ID your_app_id BAIDU_API_KEY your_api_key BAIDU_SECRET_KEY your_secret_key ASCEND_SERVICE_URL http://localhost:8001/infer # 假设的本地昇腾推理服务 # 初始化百度AI客户端 client_image AipImageClassify(BAIDU_APP_ID, BAIDU_API_KEY, BAIDU_SECRET_KEY) #或其他服务如AipOcr, AipNlp等 class GenerationRequest(BaseModel): prompt: str use_ascend: Optional[bool] False # 是否使用昇腾本地模型 app.post(/generate/image) async def generate_image(request: GenerationRequest): 文生图接口优先尝试用百度AI若指定则尝试用昇腾模型。 image_data None source # 方案A: 调用百度AI文生图API (此处以千帆的ERNIE-ViLG为例需使用对应SDK) # 注意百度官方文生图API可能需要使用requests直接调用千帆接口 if not request.use_ascend: try: # 此处为示例实际参数需参考百度千帆API文档 baidu_api_url https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/text2image/...? headers {Content-Type: application/json} payload { text: request.prompt, style: vivid, # ... 其他参数 } # 实际调用需要处理Access Token此处简化 # response requests.post(baidu_api_url, headersheaders, jsonpayload) # result response.json() # image_data result.get(data, {}).get(image) # source Baidu AI # 模拟成功返回 image_data base64_simulated_image_data_from_baidu source Baidu AI except Exception as e: print(fBaidu API call failed: {e}) # 失败后可降级到方案B # 方案B: 调用本地昇腾NPU推理服务 if not image_data and request.use_ascend: try: ascend_payload {prompt: request.prompt} response requests.post(ASCEND_SERVICE_URL, jsonascend_payload, timeout30) if response.status_code 200: result response.json() image_data result.get(generated_image_base64) source Ascend NPU else: raise HTTPException(status_code500, detailAscend service error) except Exception as e: print(fAscend service call failed: {e}) raise HTTPException(status_code503, detailAll backend services unavailable) if not image_data: raise HTTPException(status_code500, detailGeneration failed) return {source: source, image_base64: image_data} # 其他接口如文本分析、图像识别等可类似集成百度AI的其他能力 app.post(/analyze/text) async def analyze_text(text: str): 示例调用百度NLP进行情感分析 # 使用百度AipNlp # result client_image.sentimentClassify(text) # return result pass if __name__ __main__: import uvicorn uvicorn.run(app, host0.0.0.0, port8000)2. 昇腾模型转换与推理服务将生成模型如Stable Diffusion转换为昇腾OM格式并部署为本地推理服务。# 使用ATC工具进行模型转换示例 atc --model./sd_v1.5.onnx \ --framework5 \ --output./sd_v1.5_ascend \ --soc_versionAscend310P3 \ --input_shapelatent:1,4,64,64;context:1,77,768;timestep:1 \ --loginfo转换成功后编写一个简单的推理服务例如使用Flask或集成到FastAPI中通过AscendCL接口加载OM模型并执行推理。3. 安卓客户端集成在安卓App中使用Kotlin和Retrofit调用上述云端Agent服务。// NetworkService.kt import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory import retrofit2.http.Body import retrofit2.http.POSTinterface AiAgentApiService { POST(generate/image) suspend fun generateImage(Body request: GenerationRequest): ApiResponse } data class GenerationRequest(val prompt: String, val use_ascend: Boolean false) data class ApiResponse(val source: String, val image_base64: String) object RetrofitClient { private const val BASE_URL http://your-cloud-server-ip:8000/ // 替换为你的云端服务地址 val apiService: AiAgentApiService by lazy { Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .build() .create(AiAgentApiService::class.java) } }// MainActivity.kt (部分代码) import android.graphics.Bitmap import android.graphics.BitmapFactory import android.os.Bundle import android.util.Base64 import androidx.appcompat.app.AppCompatActivity import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import kotlinx.coroutines.withContext class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 示例触发生成请求 val prompt 一只在星空下奔跑的柯基犬 generateImage(prompt) } private fun generateImage(prompt: String) { GlobalScope.launch(Dispatchers.IO) { try { val request GenerationRequest(prompt, use_ascend false) // 或根据用户选择 val response RetrofitClient.apiService.generateImage(request) if (response.image_base64.isNotEmpty()) { // 将Base64字符串解码为Bitmap val imageBytes Base64.decode(response.image_base64, Base64.DEFAULT) val bitmap BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.size) // 切换到主线程更新UI withContext(Dispatchers.Main) { imageView.setImageBitmap(bitmap) textView.text Generated by: ${response.source} } } } catch (e: Exception) { e.printStackTrace() // 处理网络或服务错误 } } } }三、方案优势与参赛要点端云协同灵活高效云端Agent作为调度中心可根据网络、算力需求灵活选择使用百度云端大模型速度快、能力新或本地昇腾模型低延迟、数据隐私好。最大化利用昇腾NPU通过ATC工具将主流开源模型适配到昇腾硬件体现大赛核心的“模型适配”能力并展示端侧推理的潜力。集成百度AI生态通过调用百度千帆平台或AIP的各类API文生图、NLP、OCR等快速构建功能丰富的AI应用符合大赛鼓励使用外部数据与服务的精神。完整的安卓端落地提供了从服务到客户端的完整代码示例确保功能可在真实安卓设备上运行突出应用落地能力。部署注意事项云端服务需部署在公网可访问的服务器如云主机。安卓应用需申请网络权限并处理SSL证书问题建议使用HTTPS。百度AI服务需在其开放平台创建应用以获取API Key和Secret Key。昇腾模型推理服务可部署在与云端Agent同一内网的带有昇腾NPU的服务器上或通过更高阶的方案将OM模型部署到支持昇腾的安卓设备进行纯端侧推理。参考来源昇腾Model-Agent适配安卓API图文生成重磅2023中国高校计算机大赛-人工智能创意赛结果出炉python版--百度人工智能接口AIP的调用方法昇腾模型对接百度AI生成图片并部署安卓应用【深入探索AI原生应用】文心大模型4.0开启人工智能之门
返回列表