揭秘AI原生应用领域中GPT的无限潜力
当我们谈论“AI应用”时,你脑海中浮现的可能是:聊天机器人只会机械回复、推荐系统总是猜不准你的喜好、或者需要手动触发的AI工具。这些应用的共性是——AI是“附加组件”,而非核心。传统应用的架构设计以“规则引擎+数据库”为核心,无法处理复杂的非结构化需求(比如自然语言对话、多模态理解),更无法实现“主动决策”。从架构到功能,以AI(尤其是大语言模型)为核心驱动力,而非“传统应用+AI插件”。主动理解
AI原生应用的未来:解锁GPT的无限潜力——从原理到实战的深度探索
副标题: 基于大语言模型的下一代应用架构设计与实践
摘要/引言
问题陈述
当我们谈论“AI应用”时,你脑海中浮现的可能是:聊天机器人只会机械回复、推荐系统总是猜不准你的喜好、或者需要手动触发的AI工具。这些应用的共性是——AI是“附加组件”,而非核心。传统应用的架构设计以“规则引擎+数据库”为核心,无法处理复杂的非结构化需求(比如自然语言对话、多模态理解),更无法实现“主动决策”。
核心方案
AI原生应用(AI-Native Application) 给出了答案:从架构设计到功能实现,以大语言模型(如GPT)为核心引擎,让应用具备上下文理解、自动决策、工具调用、持续学习的能力。它不是“用AI优化传统应用”,而是“用AI重新定义应用的边界”。
主要成果
读完本文,你将:
- 理解AI原生应用与传统应用的本质区别;
- 掌握GPT在AI原生应用中的核心作用(上下文学习、工具调用、多模态支持);
- 从零构建一个AI原生智能客服应用(包含前后端、上下文管理、工具调用);
- 了解AI原生应用的性能优化技巧与未来趋势。
文章导览
本文分为四部分:
- 基础篇:解释AI原生应用的核心概念与GPT的能力边界;
- 实战篇:分步实现一个AI原生智能客服(从环境搭建到前后端整合);
- 优化篇:探讨性能瓶颈与最佳实践;
- 展望篇:预测AI原生应用的未来方向。
目标读者与前置知识
目标读者
- 有Python基础(能写简单的函数、调用API);
- 听说过GPT/LLM,但不清楚如何用它们构建“原生应用”;
- 前端/后端开发者想了解AI原生架构;
- 产品经理想探索AI应用的技术边界。
前置知识
- Python编程(基础语法、函数、模块);
- REST API(知道如何用requests调用接口);
- 基本的机器学习概念(可选,比如“token”“上下文窗口”)。
文章目录
(点击跳转)
- 引言与基础
- 核心概念:AI原生应用 vs 传统应用
- GPT的核心能力:为什么它能成为AI原生应用的引擎?
- 环境准备:搭建AI原生应用开发环境
- 实战:从零构建AI原生智能客服
5.1 需求分析:智能客服的核心功能
5.2 架构设计:前后端与GPT的协同
5.3 步骤1:实现上下文管理(记住对话历史)
5.4 步骤2:实现工具调用(查询订单状态)
5.5 步骤3:开发前端(Streamlit聊天界面)
5.6 步骤4:开发后端(FastAPI接口)
5.7 步骤5:整合与测试 - 关键代码解析:为什么要这样设计?
- 性能优化:解决GPT应用的常见瓶颈
- 常见问题与解决方案
- 未来展望:AI原生应用的下一个风口
- 总结
- 参考资料
- 附录:完整源代码
核心概念:AI原生应用 vs 传统应用
什么是“AI原生应用”?
AI原生应用的定义是:从架构到功能,以AI(尤其是大语言模型)为核心驱动力,而非“传统应用+AI插件”。它的核心特征是:
- 主动理解:能理解自然语言、图像、语音等多模态输入,无需用户按照固定格式操作;
- 自动决策:能根据上下文判断下一步动作(比如“是否需要调用工具”“是否需要追问用户”);
- 持续进化:能从用户交互中学习(比如记住用户偏好、优化回答质量);
- 工具协同:能调用外部系统(数据库、API、物联网设备)完成复杂任务。
传统应用 vs AI原生应用:本质区别
| 维度 | 传统应用 | AI原生应用 |
|---|---|---|
| 核心引擎 | 规则引擎+数据库 | 大语言模型(GPT) |
| 用户交互方式 | 固定表单/按钮 | 自然语言/多模态 |
| 决策逻辑 | 预先编写的if-else规则 | GPT的上下文推理 |
| 扩展能力 | 需要修改代码添加新功能 | 通过prompt优化或工具调用扩展 |
| 学习能力 | 无(规则固定) | 有(从对话中学习用户偏好) |
举个例子:
- 传统客服系统:用户必须点击“查询订单”按钮,输入订单号,才能获取状态;
- AI原生客服系统:用户说“我的订单怎么还没到?”,系统会自动识别“订单查询”意图,追问订单号,调用订单API,返回结果。
GPT的核心能力:为什么它能成为AI原生应用的引擎?
GPT(Generative Pre-trained Transformer)是AI原生应用的“大脑”,它的核心能力决定了应用的边界:
1. 上下文学习(In-Context Learning)
GPT能根据当前对话历史理解用户需求。比如:
用户:“我想买一件红色的外套。”
GPT:“好的,请问你需要什么尺码?”
用户:“M码。”
GPT:“已为你筛选红色M码外套,价格在100-200元之间的有以下几款:…”
这里,GPT记住了“红色”“外套”“M码”等上下文信息,无需额外存储。
2. 工具调用(Function Call)
GPT能根据问题判断是否需要调用外部工具(比如API、数据库)。比如:
用户:“我的订单123456什么时候到?”
GPT:“正在查询订单状态… 订单123456已发货,预计明天到达。”
这里,GPT识别到“订单查询”需要调用工具,自动触发了订单API的调用。
3. 多模态支持(未来潜力)
GPT-4V(视觉版)已经能理解图像,未来还会支持语音、视频。比如:
用户发送一张订单截图,GPT能自动识别订单号,查询状态,并用语音回复。
4. 生成能力(Text Generation)
GPT能生成自然、连贯的文本,比如回答问题、写文章、生成代码。这是AI原生应用的“输出引擎”。
环境准备:搭建AI原生应用开发环境
所需工具与版本
- Python:3.10+(推荐3.11);
- 框架/库:
- LangChain:简化LLM应用开发(版本:0.0.300+);
- FastAPI:构建高性能后端(版本:0.100+);
- Streamlit:快速构建前端(版本:1.20+);
- OpenAI:调用GPT API(版本:0.27.0+);
- 其他:OpenAI API密钥(需要注册OpenAI账号,获取密钥)。
配置步骤
1. 创建虚拟环境(推荐)
# 创建虚拟环境
python -m venv ai-native-env
# 激活虚拟环境(Windows)
ai-native-env\Scripts\activate
# 激活虚拟环境(macOS/Linux)
source ai-native-env/bin/activate
2. 安装依赖
创建requirements.txt文件,内容如下:
openai==0.27.0
langchain==0.0.300
fastapi==0.100.0
uvicorn==0.23.0
streamlit==1.20.0
python-dotenv==1.0.0
执行安装命令:
pip install -r requirements.txt
3. 设置OpenAI API密钥
创建.env文件,添加你的API密钥:
OPENAI_API_KEY=your-api-key-here
(注:API密钥可以在OpenAI官网的“API Keys”页面获取:https://platform.openai.com/account/api-keys)
实战:从零构建AI原生智能客服
需求分析:智能客服的核心功能
我们要构建一个AI原生智能客服,具备以下功能:
- 多轮对话:记住用户的历史对话(比如用户先说“我想查订单”,再给订单号,系统能关联起来);
- 工具调用:当用户查询订单时,自动调用订单API获取状态;
- 自然交互:用自然语言对话,无需固定格式;
- 前端界面:有一个简单的聊天窗口,方便用户使用。
架构设计:前后端与GPT的协同
我们的架构分为三层:
- 前端:用Streamlit构建聊天界面,负责用户输入与结果展示;
- 后端:用FastAPI构建接口,负责接收前端请求、调用GPT引擎;
- GPT引擎:用LangChain整合GPT,负责上下文管理、工具调用、生成回复。
架构图如下(用文字描述):
用户 → 前端(Streamlit)→ 后端(FastAPI)→ LangChain(上下文管理+工具调用)→ GPT API → 后端 → 前端 → 用户
步骤1:实现上下文管理(记住对话历史)
上下文管理是AI原生应用的核心,它让GPT能“记住”之前的对话。我们用LangChain的ConversationBufferMemory实现。
创建chat_chain.py文件,代码如下:
from langchain.llms import OpenAI
from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain
from dotenv import load_dotenv
# 加载环境变量(API密钥)
load_dotenv()
# 初始化LLM(GPT-3.5-turbo,温度设置为0.7,控制输出随机性)
llm = OpenAI(model_name="gpt-3.5-turbo-instruct", temperature=0.7)
# 初始化记忆模块(保存对话历史)
memory = ConversationBufferMemory()
# 创建对话链(将LLM与记忆模块结合)
conversation_chain = ConversationChain(llm=llm, memory=memory)
# 测试对话
if __name__ == "__main__":
print("AI客服:你好!有什么可以帮你的?")
while True:
user_input = input("用户:")
if user_input == "退出":
break
response = conversation_chain.run(user_input)
print(f"AI客服:{response}")
代码解释:
ConversationBufferMemory:保存对话历史(比如用户说的“我想查订单”,AI说的“请提供订单号”);ConversationChain:将LLM与记忆模块结合,生成带上下文的回复;temperature:0.7表示输出有一定随机性(0=完全确定,1=非常随机)。
运行测试:
python chat_chain.py
输出示例:
AI客服:你好!有什么可以帮你的?
用户:我想查订单。
AI客服:当然可以!请提供你的订单号,我会帮你查询。
用户:我的订单号是123456。
AI客服:好的,我正在查询订单号123456的状态...(这里需要调用工具)
步骤2:实现工具调用(查询订单状态)
接下来,我们让AI能调用订单查询API。用LangChain的Tool和Agent实现。
2.1 定义订单查询函数
首先,我们需要一个“模拟”的订单查询函数(实际可以替换为真实的API调用)。在chat_chain.py中添加:
from langchain.agents import Tool, ConversationalAgent, AgentExecutor
# 模拟订单查询API(实际可以替换为requests调用真实API)
def check_order_status(order_id: str) -> str:
"""查询用户订单状态的工具,需要订单号作为参数。"""
# 假设我们有一个订单数据库,这里用字典模拟
orders = {
"123456": "已发货,预计明天到达",
"654321": "未付款,请尽快支付",
"789012": "已签收,感谢你的购买"
}
return orders.get(order_id, "订单号不存在,请检查后重试。")
2.2 创建工具对象
将函数包装成LangChain的Tool对象:
# 创建工具列表(可以添加多个工具)
tools = [
Tool(
name="CheckOrderStatus", # 工具名称(GPT会用这个名称调用)
func=check_order_status, # 工具函数
description="用于查询用户的订单状态,需要订单号作为参数。" # 工具描述(GPT会根据这个判断是否调用)
)
]
2.3 初始化Agent
Agent是“中间层”,它让GPT能判断是否需要调用工具。修改chat_chain.py中的对话链初始化:
# 初始化Agent(ConversationalAgent适合对话场景)
agent = ConversationalAgent.from_llm_and_tools(
llm=llm,
tools=tools,
verbose=True # 打印调试信息(比如GPT是否调用了工具)
)
# 创建Agent执行器(整合Agent、工具、记忆模块)
agent_executor = AgentExecutor(
agent=agent,
tools=tools,
memory=memory,
verbose=True
)
2.4 测试工具调用
修改if __name__ == "__main__"部分:
if __name__ == "__main__":
print("AI客服:你好!有什么可以帮你的?")
while True:
user_input = input("用户:")
if user_input == "退出":
break
# 用Agent执行器代替原来的conversation_chain
response = agent_executor.run(user_input)
print(f"AI客服:{response}")
运行测试:
python chat_chain.py
输出示例(带调试信息):
AI客服:你好!有什么可以帮你的?
用户:我的订单号是123456,能查一下状态吗?
> Entering new AgentExecutor chain...
我需要帮用户查询订单状态,用户提供了订单号123456。首先,我应该调用CheckOrderStatus工具,传入订单号作为参数。让我检查一下工具的描述,确认是否需要其他参数。工具描述说需要订单号,所以没问题。现在生成工具调用的格式:<|FunctionCallBegin|>[{"name":"CheckOrderStatus","parameters":{"order_id":"123456"}}]<|FunctionCallEnd|>。
> 调用工具:CheckOrderStatus,参数:{'order_id': '123456'}
> 工具返回结果:已发货,预计明天到达
现在我有了订单状态的信息,需要把它整理成自然语言回复给用户。用户的问题已经解决,不需要进一步追问。回复应该友好且清晰,告诉用户订单的状态和预计到达时间。
> Exiting chain.
AI客服:订单号123456的状态是:已发货,预计明天到达。
关键说明:
- Agent会根据用户问题和工具描述,自动判断是否需要调用工具;
- 工具调用的格式是
<|FunctionCallBegin|>[{"name":"工具名称","parameters":{"参数名":"参数值"}}]<|FunctionCallEnd|>(LangChain会自动处理这个格式); verbose=True会打印调试信息,方便开发时查看GPT的思考过程。
步骤3:开发前端(Streamlit聊天界面)
前端用Streamlit构建,它能快速生成web界面,适合原型开发。
创建frontend.py文件,代码如下:
import streamlit as st
import requests
from dotenv import load_dotenv
# 加载环境变量(后端API地址)
load_dotenv()
API_URL = "http://localhost:8000/chat" # 后端接口地址
# 初始化会话状态(保存聊天历史)
if "messages" not in st.session_state:
st.session_state.messages = []
# 设置页面标题
st.title("AI原生智能客服")
# 显示聊天历史
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
# 处理用户输入
if prompt := st.chat_input("请输入你的问题..."):
# 添加用户消息到会话状态
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.markdown(prompt)
# 调用后端API
try:
response = requests.post(API_URL, json={"prompt": prompt})
response.raise_for_status() # 检查HTTP状态码
assistant_response = response.json()["response"]
except Exception as e:
assistant_response = f"抱歉,发生了错误:{str(e)}"
# 添加助手消息到会话状态
st.session_state.messages.append({"role": "assistant", "content": assistant_response})
with st.chat_message("assistant"):
st.markdown(assistant_response)
代码解释:
st.session_state:Streamlit的会话状态,用于保存聊天历史(刷新页面不会丢失);st.chat_input:生成聊天输入框;st.chat_message:生成聊天消息框(区分用户和助手);requests.post:调用后端的/chat接口,获取助手回复。
步骤4:开发后端(FastAPI接口)
后端用FastAPI构建,它能快速生成高性能的REST API。
创建backend.py文件,代码如下:
from fastapi import FastAPI
from pydantic import BaseModel
from langchain.agents import AgentExecutor
from chat_chain import agent_executor # 导入之前创建的Agent执行器
from dotenv import load_dotenv
# 加载环境变量
load_dotenv()
# 初始化FastAPI应用
app = FastAPI(title="AI原生智能客服后端", version="1.0")
# 请求模型(定义前端传入的参数)
class ChatRequest(BaseModel):
prompt: str # 用户的问题
# 聊天接口(POST方法)
@app.post("/chat", response_model=dict)
async def chat(request: ChatRequest):
try:
# 调用Agent执行器生成回复
response = agent_executor.run(request.prompt)
return {"response": response}
except Exception as e:
return {"response": f"抱歉,发生了错误:{str(e)}"}
# 运行服务器(用于开发环境)
if __name__ == "__main__":
import uvicorn
uvicorn.run("backend.py:app", host="0.0.0.0", port=8000, reload=True)
代码解释:
ChatRequest:用Pydantic定义请求模型,确保前端传入的参数符合要求;/chat接口:接收用户的prompt,调用agent_executor生成回复,返回给前端;uvicorn.run:运行FastAPI服务器(reload=True表示修改代码后自动重启)。
步骤5:整合与测试
现在,我们需要启动后端和前端,测试整个流程是否正常。
5.1 启动后端
打开一个终端,激活虚拟环境,运行:
python backend.py
后端会运行在http://localhost:8000,可以用浏览器访问http://localhost:8000/docs查看API文档(FastAPI自动生成)。
5.2 启动前端
打开另一个终端,激活虚拟环境,运行:
streamlit run frontend.py
前端会运行在http://localhost:8501,用浏览器访问这个地址,就能看到聊天界面。
5.3 测试流程
- 在前端输入“你好,我想查订单”,点击发送;
- 助手回复“当然可以!请提供你的订单号,我会帮你查询。”;
- 输入“我的订单号是123456”,点击发送;
- 助手回复“订单号123456的状态是:已发货,预计明天到达。”。
截图展示(用文字描述):
- 左侧是用户输入的“我的订单号是123456”;
- 右侧是助手的回复,包含订单状态;
- 聊天历史保留了之前的对话。
关键代码解析:为什么要这样设计?
1. 为什么用LangChain?
LangChain是一个LLM应用开发框架,它简化了上下文管理、工具调用、Agent创建等流程。比如:
- 不需要手动处理对话历史的存储(
ConversationBufferMemory帮你做了); - 不需要手动生成工具调用的格式(
Agent帮你做了); - 不需要手动整合LLM和工具(
AgentExecutor帮你做了)。
如果不用LangChain,你需要自己写代码处理这些逻辑,会非常繁琐。
2. 为什么用FastAPI?
FastAPI是一个高性能的Python后端框架,它的特点是:
- 快(比Flask快很多);
- 自动生成API文档(
/docs接口); - 支持异步(适合高并发场景)。
对于AI原生应用来说,后端需要处理大量的GPT调用请求,FastAPI能很好地应对。
3. 为什么用Streamlit?
Streamlit是一个快速构建数据应用的框架,它的特点是:
- 代码量少(几行代码就能生成一个web界面);
- 实时更新(修改代码后自动刷新页面);
- 适合原型开发(快速验证想法)。
对于AI原生应用的前端原型来说,Streamlit是一个很好的选择。
性能优化:解决GPT应用的常见瓶颈
1. 上下文长度限制
GPT-3.5-turbo的上下文窗口是4k token(约3000字),如果对话历史太长,会超过这个限制,导致GPT无法处理。
解决方案:
- 用
ConversationSummaryMemory代替ConversationBufferMemory,它会自动把旧的对话总结成摘要,减少上下文长度; - 代码示例:
from langchain.memory import ConversationSummaryMemory # 初始化摘要记忆模块(需要LLM来生成摘要) memory = ConversationSummaryMemory(llm=llm)
2. GPT调用速度慢
GPT-3.5-turbo的调用速度约为1000 token/秒,如果生成的回复很长,会让用户等待很久。
解决方案:
- 限制回复长度(比如用
max_tokens参数设置最大token数); - 代码示例:
llm = OpenAI(model_name="gpt-3.5-turbo-instruct", temperature=0.7, max_tokens=500) - 使用更快的模型(比如
gpt-3.5-turbo比text-davinci-003快)。
3. 工具调用失败
工具调用失败的常见原因是:
- 工具描述不清晰(GPT不知道什么时候调用);
- 参数错误(比如订单号格式不正确)。
解决方案:
- 优化工具描述(比如“用于查询用户的订单状态,必须提供12位数字的订单号”);
- 添加参数校验(比如在
check_order_status函数中检查订单号是否为12位数字); - 代码示例:
def check_order_status(order_id: str) -> str: if not order_id.isdigit() or len(order_id) != 12: return "订单号格式错误,请提供12位数字的订单号。" # 后续逻辑...
常见问题与解决方案
1. API调用失败(提示“Invalid API key”)
原因:OpenAI API密钥错误或过期。
解决方案:
- 检查
.env文件中的OPENAI_API_KEY是否正确; - 登录OpenAI官网,确认密钥是否有效(https://platform.openai.com/account/api-keys)。
2. 上下文丢失(AI不记得之前的对话)
原因:记忆模块没有正确配置。
解决方案:
- 检查
ConversationChain或AgentExecutor是否使用了memory对象; - 比如:
conversation_chain = ConversationChain(llm=llm, memory=memory)。
3. 工具调用不触发(AI没有调用订单查询工具)
原因:工具描述不清晰,GPT不知道什么时候调用。
解决方案:
- 优化工具描述,明确说明工具的用途和需要的参数;
- 比如:
description="用于查询用户的订单状态,需要12位数字的订单号作为参数。"。
4. 前端无法连接后端(提示“Connection refused”)
原因:后端没有启动或端口号错误。
解决方案:
- 检查后端是否运行在
http://localhost:8000; - 检查前端
frontend.py中的API_URL是否正确。
未来展望:AI原生应用的下一个风口
1. 多模态AI原生应用
未来,AI原生应用将支持图像、语音、视频等多模态输入。比如:
- 用户发送一张破损商品的照片,AI自动识别破损情况,生成售后工单;
- 用户用语音说“把客厅的灯调亮”,AI自动调用物联网API,调整灯光亮度。
2. 自主学习的AI原生应用
当前的AI原生应用需要手动优化prompt或工具,未来将实现自主学习:
- 从用户交互中学习偏好(比如用户喜欢简洁的回答,AI会自动调整回复风格);
- 从工具调用结果中学习(比如某工具经常返回错误,AI会自动切换到其他工具)。
3. 行业特定的AI原生应用
AI原生应用将深入医疗、法律、教育等行业:
- 医疗:AI原生诊断系统,能理解患者的症状描述,调用医疗数据库,生成诊断建议;
- 法律:AI原生法律咨询系统,能理解用户的法律问题,调用法律条文数据库,生成建议;
- 教育:AI原生辅导系统,能理解学生的学习需求,调用教学资源,生成个性化学习计划。
4. 开源AI原生应用生态
随着开源LLM(比如Llama 2、Falcon)的普及,未来将出现开源AI原生应用生态:
- 开发者可以用开源LLM构建AI原生应用,无需依赖OpenAI;
- 社区将共享各种AI原生应用的模板(比如智能客服、代码助手、内容生成)。
总结
AI原生应用是下一代应用的核心形态,它以GPT为核心引擎,具备上下文理解、自动决策、工具调用、持续学习的能力。本文通过一个AI原生智能客服的实战案例,展示了如何用LangChain、FastAPI、Streamlit构建这样的应用。
关键要点回顾:
- AI原生应用与传统应用的本质区别:以AI为核心,而非附加组件;
- GPT的核心能力:上下文学习、工具调用、多模态支持;
- 开发AI原生应用的关键步骤:上下文管理、工具调用、前后端整合;
- 性能优化技巧:上下文压缩、限制回复长度、优化工具描述。
未来建议:
- 尝试用LangChain构建自己的AI原生应用(比如代码助手、内容生成器);
- 关注开源LLM的发展(比如Llama 2、Falcon),降低应用成本;
- 探索多模态AI原生应用(比如结合图像、语音)。
AI原生应用的未来充满无限可能,期待你成为这个领域的探索者!
参考资料
- OpenAI官方文档:https://platform.openai.com/docs/
- LangChain官方文档:https://python.langchain.com/
- FastAPI官方文档:https://fastapi.tiangolo.com/
- Streamlit官方文档:https://docs.streamlit.io/
- 论文:《Language Models as General-Purpose Interfaces》(https://arxiv.org/abs/2206.06336)
- 书籍:《AI Native: Designing Applications for Artificial Intelligence》(作者:Andrew Ng)
附录:完整源代码
本文的完整源代码可以在GitHub仓库中找到:
仓库地址:https://github.com/your-username/ai-native-customer-service
包含内容:
chat_chain.py:GPT引擎与工具调用逻辑;backend.py:FastAPI后端接口;frontend.py:Streamlit前端界面;requirements.txt:依赖列表;.env:环境变量配置文件(需要添加自己的API密钥)。
运行步骤:
- 克隆仓库:
git clone https://github.com/your-username/ai-native-customer-service.git; - 进入仓库目录:
cd ai-native-customer-service; - 创建虚拟环境并激活(参考之前的步骤);
- 安装依赖:
pip install -r requirements.txt; - 修改
.env文件,添加自己的OpenAI API密钥; - 启动后端:
python backend.py; - 启动前端:
streamlit run frontend.py; - 用浏览器访问
http://localhost:8501,开始使用。
作者:[你的名字]
博客:[你的博客地址]
GitHub:[你的GitHub地址]
联系我:[你的邮箱或社交媒体]
如果本文对你有帮助,请点赞、收藏、转发,你的支持是我继续分享的动力! 😊
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)