首页
/ Power Apps Code Apps 开发实战:TypeScript + React + Power Platform 集成标准与最佳实践

Power Apps Code Apps 开发实战:TypeScript + React + Power Platform 集成标准与最佳实践

2026-09-09 20:10:22作者:舒璇辛Bertina

本文基于 awesome-copilot 仓库中的 Power Apps Code Apps Development Instructions 编写,系统讲解使用 TypeScript、React 与 Vite 构建 Power Apps Code Apps 的完整开发标准,涵盖项目脚手架、Power Platform SDK 连接器集成、PCF 控件与 Power BI 嵌入、Dataverse 数据模型、离线架构、安全、测试、多环境 DevOps 流水线与常见问题排查。读完本文,你将掌握一套可直接落地的 Code-first 应用开发规范,并能借助仓库配套的 插件脚手架技能 快速初始化并部署到 Power Platform。

一、项目上下文:什么是 Power Apps Code Apps

Power Apps Code Apps 是 Microsoft Power Platform 推出的 代码优先(Code-first)Web 应用开发模式:开发者不再受限于低代码画布,而是直接用 TypeScript、React 构建前端,通过 Power Platform SDK 与 1,500+ 连接器、Microsoft Entra 认证以及托管的 Power Platform 基础设施深度集成。根据 skills/power-apps-code-app-scaffold/SKILL.md 的说明,Code Apps 允许开发者在代码优先的同时复用 Power Platform 的连接器生态、身份认证与托管运行时。

以下是本指令文档确认的几项硬性环境约束,后续所有配置都围绕它们展开:

维度 约束 说明
前端技术栈 TypeScript + React + Vite 官方推荐组合,Vite 作为打包器
Power Platform SDK @microsoft/power-apps(^1.0.3) 用于连接器集成与运行时初始化
本地开发端口 3000(必需) Power Apps SDK 要求应用运行在 3000 端口
项目管理 PAC CLI(Power Platform CLI) 负责项目初始化、连接器管理与部署
生产许可 Power Apps Premium 终端用户使用 Code Apps 的许可要求
开发前置 VS Code + Power Platform Tools 扩展、Node.js LTS(v18.x 或 v20.x)、已启用 Code Apps 的 Power Platform 环境(管理员设置) 详见脚手架技能的 Prerequisites 一节

该指令文档在仓库中登记于 docs/README.instructions.md 的指令索引表,可一键安装到 VS Code / VS Code Insiders,其 front-matter 声明了 applyTo: '**/*.{ts,tsx,js,jsx}, **/vite.config.*, **/package.json, **/tsconfig.json, **/power.config.json',即这些文件被打开时 Copilot 会自动应用本套开发标准。

二、开发标准:工程结构与 TypeScript 配置

2.1 项目目录结构

指令文档要求采用职责清晰的分层目录结构,并将 PAC CLI 生成的代码与手写业务代码严格隔离:

src/
├── components/          # 可复用 UI 组件
├── hooks/              # 面向 Power Platform 的自定义 React hooks
├── generated/
│   ├── services/       # PAC CLI 生成的连接器服务
│   └── models/         # PAC CLI 生成的 TypeScript 模型
├── utils/             # 工具函数与辅助方法
├── types/             # TypeScript 类型定义
├── PowerProvider.tsx  # Power Platform 上下文包装组件
└── main.tsx          # 应用入口

要点:

  • 生成代码与自定义代码分离generated/services/generated/models/ 由 PAC CLI 生成,不应手改;业务代码引用其导出的类型与服务,从而获得端到端类型安全。
  • 命名约定统一:文件使用 kebab-case,组件使用 PascalCase。
  • 脚手架技能(SKILL.md)中给出了与之一致的结构,并建议使用 pac code init --displayName "App Name" 初始化项目,再由 pac code add-data-source 将连接器源加入工程以生成服务与模型。

2.2 TypeScript 配置:与 Power Apps SDK 兼容

指令文档明确指出:必须将 verbatimModuleSyntax 设为 false,以保证与 Power Apps SDK 的兼容性,同时开启严格模式。推荐的完整 tsconfig.json 如下:

{
  "compilerOptions": {
    "target": "ES2020",
    "useDefineForClassFields": true,
    "lib": ["ES2020", "DOM", "DOM.Iterable"],
    "module": "ESNext",
    "skipLibCheck": true,
    "verbatimModuleSyntax": false,
    "moduleResolution": "bundler",
    "allowImportingTsExtensions": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react-jsx",
    "strict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noFallthroughCasesInSwitch": true,
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    }
  }
}

几个关键项的作用:

  • target: ES2020lib: ES2020/DOM/DOM.Iterable:保证对现代浏览器 API(Promise、async/await、DOM)的类型覆盖,同时与 SDK 的运行环境要求对齐。
  • moduleResolution: "bundler" + allowImportingTsExtensions:适配 Vite 的打包解析方式。
  • noEmit: true:类型检查由 tsc -b 独立承担,产物统一交给 Vite 输出。
  • paths 别名 @/* 映射到 ./src/*,配合 Vite 侧 "@": path.resolve(__dirname, "./src") 使用,保证编辑器与打包器两侧的导入路径一致。
  • 严格模式 + noUnusedLocals/noUnusedParameters/noFallthroughCasesInSwitch:在编译期拦截死代码与潜在逻辑漏洞。

同时遵循以下编码约束:

  • 为 Power Platform 连接器响应提供完整类型(优先使用 PAC CLI 生成的模型)。
  • 为应用自有数据结构定义 interface。
  • 实现错误边界(Error Boundary)与规范的错误处理类型。

2.3 关键依赖安装

指令文档要求按官方示例安装以下依赖:

依赖 用途
@microsoft/power-apps Power Platform SDK(连接器、认证与运行时能力)
@fluentui/react-components Fluent UI React 组件库,官方示例采用的 UI 方案
concurrently(devDependency) 并行执行 vitepac code run 等开发脚本

三、高级 Power Platform 集成能力

指令文档为 Code Apps 规划了四类深度集成能力,均有可复制的代码范式。

3.1 集成 PCF 控件(Power Apps Component Framework)

可以将 PCF 自定义控件嵌入 Code Apps,用于数据可视化等场景,并通过包装组件打通 PCF 与 React 之间的数据绑定与事件:

// Example: Using custom PCF control for data visualization
import { PCFControlWrapper } from './components/PCFControlWrapper';

const MyComponent = () => {
  return (
    <PCFControlWrapper
      controlName="CustomChartControl"
      dataset={chartData}
      configuration={chartConfig}
    />
  );
};

实践要点:处理好 PCF 与 React 之间的事件、数据绑定,并将 PCF 控件随 Code Apps 一起打包部署。仓库中另有完整的 PCF 最佳实践Code Components 实现指南 可作为进阶参考。

3.2 嵌入 Power BI 报表

通过 powerbi-client-react 嵌入交互式仪表盘,支持动态筛选与 PDF / Excel / 图片导出:

import { PowerBIEmbed } from 'powerbi-client-react';

const DashboardComponent = () => {
  return (
    <PowerBIEmbed
      embedConfig={{
        type: 'report',
        id: reportId,
        embedUrl: embedUrl,
        accessToken: accessToken,
        tokenType: models.TokenType.Aad,
        settings: {
          panes: { filters: { expanded: false, visible: false } }
        }
      }}
    />
  );
};

注意 tokenType: models.TokenType.Aad 表示使用 AAD 令牌嵌入(非 embed token),settings.panes 可控制筛选器面板的展开与可见性,据此可基于 Code App 的上下文实现报表动态过滤与导出能力。

3.3 集成 AI Builder

可调用 AI Builder 模型实现表单处理、对象检测、预测与情感分析:

// Example: Document processing with AI Builder
const processDocument = async (file: File) => {
  const formData = new FormData();
  formData.append('file', file);

  const result = await AIBuilderService.ProcessDocument({
    modelId: 'document-processing-model-id',
    document: formData
  });

  return result.extractedFields;
};

这类服务同样可经由 PAC CLI 生成类型化服务层,保持与连接器调用一致的类型安全体验。

3.4 嵌入 Power Virtual Agents 聊天机器人

使用 Bot Framework 生态(botframework-directlinejs + botframework-webchat)在 Code App 内嵌入对话机器人:

import { DirectLine } from 'botframework-directlinejs';
import { WebChat } from 'botframework-webchat';

const ChatbotComponent = () => {
  const directLine = new DirectLine({
    token: chatbotToken
  });

  return (
    <div style={{ height: '400px', width: '100%' }}>
      <WebChat directLine={directLine} />
    </div>
  );
};

要点:将 Code App 上下文传入对话;通过自定义机器人动作触发 Code App 内函数,实现"聊天驱动应用操作"的双向联动。

3.5 PowerProvider 与认证流程

  • PowerProvider 实现模式:SDK v1.0 版本无需等待 SDK 初始化,最小实现就是一个透传 children 的 Provider:
import type { ReactNode } from "react";

export default function PowerProvider({ children }: { children: ReactNode }) {
  return <>{children}</>;
}
  • 认证:实现基于 Microsoft Entra ID 的完整认证流程;处理连接器同意(consent)对话框与权限管理。
  • 连接器操作:统一使用 PAC CLI 生成的 TypeScript 服务执行连接器操作。

3.6 官方支持连接器清单

指令文档列出的受支持连接器模式(脚手架技能 SKILL.md 在此基础上补充了更多示例连接器):

连接器 典型用途
SQL Server(含 Azure SQL) 完整 CRUD、存储过程
SharePoint 文档库、列表、站点
Office 365 Users / Groups 用户档案、照片、组成员信息
Azure Data Explorer 分析与大数据查询
OneDrive for Business 文件存储与共享
Microsoft Teams 团队协作与通知
Dataverse CRUD 操作、关系与业务逻辑

以 Office 365 Users 为例,官方推荐的服务调用模式(见脚手架技能):

// Example: Get current user profile
const profile = await Office365UsersService.MyProfile_V2("id,displayName,jobTitle,userPrincipalName");

// Example: Get user photo
const photoData = await Office365UsersService.UserPhoto_V2(profile.data.id);

四、React 模式与数据管理

4.1 React 开发模式

  • 所有新开发一律使用函数组件 + hooks
  • 为连接器操作实现完整的加载态与错误态。
  • 优先考虑 Fluent UI React 组件(与官方示例一致)。
  • 数据获取与缓存:酌情使用 React Query 或 SWR
  • 遵循组件组合的 React 最佳实践,采用 mobile-first 的响应式设计。

4.2 数据管理准则

  • 敏感数据一律存放在数据源中,严禁写进应用代码(对应脚手架技能中的 "Store sensitive data in data sources, not app code")。
  • 使用生成的模型保证连接器操作的类型安全。
  • 实现数据校验与清洗、优雅的离线处理、对高频数据的合理缓存。

4.3 高级 Dataverse 关系处理

指令文档给出了三类进阶关系场景的代码范式:

多对多关系——通过中间表服务与过滤实现:

// Example: User-to-Role many-to-many relationship
const userRoles = await UserRoleService.getall();
const filteredRoles = userRoles.filter(ur => ur.userId === currentUser.id);

多态查找(Polymorphic lookups)——处理可引用多个实体类型的 customer 字段:

// Handle polymorphic customer lookup (Account or Contact)
const customerType = record.customerType; // 'account' or 'contact'
const customerId = record.customerId;
const customer = customerType === 'account'
  ? await AccountService.get(customerId)
  : await ContactService.get(customerId);

复杂关系查询——善用 $expand$filter 提升检索效率;同时为关系约束实现业务规则校验。

五、性能优化与离线优先架构

5.1 常规性能手段

  • 对昂贵计算使用 React.memouseMemo
  • 大型应用实施代码分割(code splitting)与懒加载。
  • 通过 tree shaking 优化打包体积。
  • 用高效的连接器查询模式(合理分页、按需字段)减少 API 调用。

5.2 离线优先架构与同步模式

指令文档给出了完整的离线能力实现路径:

Service Worker 注册

// Example: Service worker registration
if ('serviceWorker' in navigator) {
  window.addEventListener('load', () => {
    navigator.serviceWorker.register('/sw.js')
      .then(registration => console.log('SW registered:', registration))
      .catch(error => console.log('SW registration failed:', error));
  });
}

IndexedDB 本地存储封装

// Example: IndexedDB wrapper for offline storage
class OfflineDataStore {
  async saveData(key: string, data: any) {
    const db = await this.openDB();
    const transaction = db.transaction(['data'], 'readwrite');
    transaction.objectStore('data').put({ id: key, data, timestamp: Date.now() });
  }

  async loadData(key: string) {
    const db = await this.openDB();
    const transaction = db.transaction(['data'], 'readonly');
    return transaction.objectStore('data').get(key);
  }
}

在此基础上,还需设计回连后的冲突解决(sync conflict resolution)、后台同步(periodic data synchronization)以及 PWA 安装与离线能力

六、安全、错误处理与测试策略

6.1 安全最佳实践

  • 永不将密钥或敏感配置写入代码。
  • 使用 Power Platform 内置的认证与授权。
  • 实现输入校验与清洗,遵循 OWASP Web 应用安全指南。
  • 尊重 Power Platform 的数据丢失防护(DLP)策略。
  • 仅使用 HTTPS 通信。

6.2 错误处理

  • 在 React 中实现完整的错误边界。
  • 优雅处理连接器专属错误,向用户提供有意义的错误信息。
  • 日志记录不得泄露敏感信息。
  • 为瞬时故障实现重试逻辑,并处理网络连接问题。

6.3 测试策略

  • 业务逻辑与工具函数编写单元测试。
  • 使用 React Testing Library 测试组件。
  • 测试中 Mock Power Platform 连接器。
  • 为关键用户流程编写集成测试。
  • 使用 TypeScript 提升测试安全,覆盖错误场景与边界情况。

七、开发工作流与 DevOps 部署

7.1 本地开发脚本

使用 PAC CLI 管理项目与连接器,配合 concurrently 并行启动 Vite 与 PAC 运行时:

{
  "scripts": {
    "dev": "concurrently \"vite\" \"pac code run\"",
    "build": "tsc -b && vite build",
    "preview": "vite preview",
    "lint": "eslint ."
  }
}

7.2 PAC CLI 核心命令

脚手架技能 SKILL.md 给出了完整的 PAC CLI 命令集:

命令 作用
pac auth create --environment {environment-id} 认证并绑定指定环境
pac env select --environment {environment-url} 选择目标环境
pac code init --displayName "App Name" 初始化 Code Apps 工程
pac connection list 列出可用连接
pac code add-data-source -a {api-name} -c {connection-id} 添加连接器数据源
pac code push 部署到 Power Platform

7.3 部署与多环境流水线

部署标准流程为 npm run build 后执行 pac code push,并做好 dev / test / prod 环境管理。指令文档给出了环境专属配置文件的范例:

// Example: environment-specific config files
// config/development.json
{
  "powerPlatform": {
    "environmentUrl": "https://dev-env.crm.dynamics.com",
    "apiVersion": "9.2"
  },
  "features": {
    "enableDebugMode": true,
    "enableAnalytics": false
  }
}

自动化流水线可用 Azure DevOps 或 GitHub Actions,指令文档给出了 Azure DevOps 的参考步骤:

# Example Azure DevOps pipeline step
- task: PowerPlatformToolInstaller@2
- task: PowerPlatformSetConnectionVariables@2
  inputs:
    authenticationType: 'PowerPlatformSPN'
    applicationId: '$(AppId)'
    clientSecret: '$(ClientSecret)'
    tenantId: '$(TenantId)'
- task: PowerPlatformPublishCustomizations@2

进阶实践还包括:dev → test → staging → prod 的自动晋升、失败自动回滚、以及使用 Azure Key Vault 管理环境专属密钥。

八、代码质量指南

8.1 组件、状态与 API 集成

  • 组件:定义清晰的 props interface;组合优于继承;TypeScript 完成 prop 校验;遵循单一职责原则;命名自解释。
  • 状态管理:简单场景用 React 内置状态;复杂场景考虑 Redux Toolkit;实现状态规范化;用 Context 或状态库避免 prop drilling;高效使用派生状态与计算值。
  • API 集成:统一使用 PAC CLI 生成的服务;实现请求/响应拦截器;管理认证令牌;实现请求去重与缓存;正确处理 HTTP 状态码。

8.2 样式与 UI

  • 使用一致的设计系统或组件库(Fluent UI 为首选)。
  • CSS Grid / Flexbox 实现响应式布局。
  • 遵循 WCAG 2.1 无障碍指南。
  • 使用 CSS-in-JS 或 CSS Modules。
  • 视情况支持暗黑模式与移动端友好界面。

8.3 进阶 UI/UX 模式

指令文档提供了五组可直接套用的高级模式:

设计系统组件——构建可复用组件系统并配合设计令牌(间距、颜色、排版):

// Example: Design system button component
interface ButtonProps {
  variant: 'primary' | 'secondary' | 'danger';
  size: 'small' | 'medium' | 'large';
  disabled?: boolean;
  onClick: () => void;
  children: React.ReactNode;
}

export const Button: React.FC<ButtonProps> = ({
  variant, size, disabled, onClick, children
}) => {
  const classes = `btn btn-${variant} btn-${size} ${disabled ? 'btn-disabled' : ''}`;
  return <button className={classes} onClick={onClick} disabled={disabled}>{children}</button>;
};

用 Storybook 做组件文档。

暗黑模式与主题系统——Theme Context + Provider,配合 CSS 变量实现动态主题,并尊重系统偏好:

// Example: Theme context and provider
const ThemeContext = createContext({
  theme: 'light',
  toggleTheme: () => {}
});

export const ThemeProvider: React.FC<{children: ReactNode}> = ({ children }) => {
  const [theme, setTheme] = useState<'light' | 'dark'>('light');

  const toggleTheme = () => {
    setTheme(prev => prev === 'light' ? 'dark' : 'light');
  };

  return (
    <ThemeContext.Provider value={{ theme, toggleTheme }}>
      <div className={`theme-${theme}`}>{children}</div>
    </ThemeContext.Provider>
  );
};

响应式进阶——使用容器查询(container queries)与流式排版:

/* Example: Container query for responsive components */
.card-container {
  container-type: inline-size;
}

@container (min-width: 400px) {
  .card {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}

动画与微交互——集成 Framer Motion:

import { motion, AnimatePresence } from 'framer-motion';

const AnimatedCard = () => {
  return (
    <motion.div
      initial={{ opacity: 0, y: 20 }}
      animate={{ opacity: 1, y: 0 }}
      exit={{ opacity: 0, y: -20 }}
      transition={{ duration: 0.3 }}
      whileHover={{ scale: 1.02 }}
      className="card"
    >
      Card content
    </motion.div>
  );
};

配合骨架屏加载态、手势识别,并使用 CSS transforms 与 will-change 优化性能。

无障碍自动化与测试——ARIA 语义标记 + 键盘导航 + 屏幕阅读器优化。指令文档给出的无障碍弹窗范式:

// Example: Accessible modal component
const Modal: React.FC<{isOpen: boolean, onClose: () => void, children: ReactNode}> = ({
  isOpen, onClose, children
}) => {
  useEffect(() => {
    if (isOpen) {
      document.body.style.overflow = 'hidden';
      const focusableElement = document.querySelector('[data-autofocus]') as HTMLElement;
      focusableElement?.focus();
    }
    return () => { document.body.style.overflow = 'unset'; };
  }, [isOpen]);

  return (
    <div
      role="dialog"
      aria-modal="true"
      aria-labelledby="modal-title"
      className={isOpen ? 'modal-open' : 'modal-hidden'}
    >
      {children}
    </div>
  );
};

集成 axe-core 做自动化无障碍测试,并在 NVDA、JAWS、VoiceOver 上验证。

国际化(i18n)与本地化——react-intl 集成、自动语言检测、RTL 支持(阿拉伯语、希伯来语)、本地化日期与数字格式:

import { FormattedMessage, useIntl } from 'react-intl';

const WelcomeMessage = ({ userName }: { userName: string }) => {
  const intl = useIntl();

  return (
    <h1>
      <FormattedMessage
        id="welcome.title"
        defaultMessage="Welcome, {userName}!"
        values={{ userName }}
      />
    </h1>
  );
};

九、当前限制与变通方案

指令文档明确列出了 Code Apps 预览期的已知限制(脚手架技能中的限制清单与之基本一致),这些属于当前版本的真实边界,规划架构时应提前考虑:

已知限制 变通方案
尚不支持内容安全策略(CSP) 按受控环境规划内容来源,等待官方支持
不支持存储 SAS IP 限制 通过其他访问控制手段弥补
无 Power Platform Git 集成 实现手动部署工作流
支持 Dataverse 解决方案,但解决方案打包器与源码集成有限 用外部工具管理高级分析
Application Insights 仅可通过 SDK logger 配置(无内置原生集成) 使用替代错误跟踪方案,规划未来迁移

十、文档标准

为保证工程可维护性,指令文档要求每个 Code Apps 项目维护:

  • 含完整环境搭建说明的 README.md;
  • 所有自定义组件与 hooks 的文档;
  • 常见问题排查指南;
  • 部署流程与需求文档;
  • 版本更新的 changelog;
  • 重大架构决策的 ADR(架构决策记录)。

十一、常见问题排查

11.1 开发阶段问题

症状 处置方式
3000 端口冲突 netstat -ano | findstr :3000 找到占用进程,再 taskkill /PID {PID} /F 结束进程
认证失败 pac auth list 检查环境与用户权限
依赖安装失败 npm cache clean --force 清理缓存后重装
TypeScript 编译错误 检查 verbatimModuleSyntax 设置与 SDK 兼容性
连接器权限错误 确认 consent 流程与管理权限
PowerProvider 异常 确认 v1.0 应用不等待 SDK 初始化
Vite dev server 异常 核对 host 与 port 配置是否符合要求

11.2 部署阶段问题

症状 处置方式
构建失败 npm audit 检查依赖,核对构建配置
认证错误 依次执行 pac auth clearpac auth create 重新认证
连接器不可用 检查 Power Platform 中的连接器配置与连接状态
性能问题 npm run build --report 分析包体积并实施缓存
环境不匹配 pac env list 确认当前所选环境
应用超时 检查构建输出与网络连通性

11.3 运行时问题

症状 处置方式
"App timed out" 错误 确认已执行 npm run build 且部署产物有效
连接器认证弹窗 确认 consent 流程实现正确
数据加载失败 检查网络请求与连接器权限
UI 渲染异常 核对 Fluent UI 兼容性与响应式设计实现

十二、最佳实践总结

指令文档收尾给出了 10 条最佳实践,可视为 Code Apps 开发的总纲:

  1. 遵循 Microsoft 官方文档与最佳实践;
  2. 使用 TypeScript 保证类型安全与开发体验;
  3. 实现完善的错误处理与用户反馈;
  4. 持续优化性能与用户体验;
  5. 遵循安全最佳实践与 Power Platform 策略;
  6. 编写可维护、可测试、文档齐全的代码;
  7. 统一使用 PAC CLI 生成的服务与模型;
  8. 为未来的功能更新与迁移做规划;
  9. 实施全面的测试策略;
  10. 遵循规范的 DevOps 与部署实践。

十三、在 awesome-copilot 仓库中的配套落地资源

本指令并非孤立的规范文件,仓库为其提供了完整的工具链支撑:

按此规范开发的 Code Apps,从工程结构、类型安全、连接器集成到部署流水线,均与 Power Platform 的官方预览能力对齐;同时保留 Web 前端生态的灵活性与开发效率,是"低代码生态 + 代码优先"场景下的可靠选择。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.14 K
2.76 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
860
1.35 K
docsdocs
暂无描述
Markdown
899
5.83 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
925
1.85 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.84 K
1.02 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
533
601
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.03 K
525
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.37 K
1.46 K
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
548
395