• [问题求助] test
    import { http } from "@kit.NetworkKit";// 定义车票信息接口export interface TrainInfo { trainNumber: string; // 车次 trainType: string; // 车型 departureTime: string; // 发车时间 arrivalTime: string; // 到达时间 duration: string; // 历时 tickets: TicketInfo[]; // 余票信息}// 定义余票信息接口export interface TicketInfo { seatType: string; // 座位类型 price: number; // 价格 stockInfo: string; // 余票信息}// 定义温馨提示接口export interface TipInfo { content: string; // 提示内容}// 定义解析结果接口export interface ParseResult { trains: TrainInfo[]; tips: TipInfo[];}export class NetWorkService { private token: string = ''; private httpClient = http.createHttp(); async getAuthToken(): Promise<boolean> { const requestBody = { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "hid_bcwyicen9qp1qc8" }, "name": "ch", "password": "ch123456" } } }, "scope": { "domain": { "id": "7cd1794261ec444aace6ca7042addf04", "name": "hid_bcwyicen9qp1qc8" }, "project": { "id": "6a4e7e844b8941ba952cbf9805a97469", "name": "cn-north-4" } } } }; try { let response = await this.httpClient.request( 'https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens', { method: http.RequestMethod.POST, header: { 'Content-Type': 'application/json' }, extraData: requestBody } ); console.log("响应==>", JSON.stringify(response)); if (response.responseCode === 201) { const headers = response.header as Record<string, string>; this.token = headers?.['x-subject-token'] || ''; console.log('token==>', this.token); return true; } else { console.log('获取token失败,响应码:', response.responseCode); return false; } } catch (error) { console.error('获取token失败==》', error); return false; } } // 解析SSE流数据 private parseSSEData(sseData: string): any[] { const events: any[] = []; const lines = sseData.split('\n'); let currentEvent: any = null; for (let i = 0; i < lines.length; i++) { console.log('lines数据:', lines[i]) const line = lines[i].trim(); if (line.startsWith('data:')) { // console.log('line:', line) const jsonStr = line.substring(5).trim(); if (jsonStr) { try { const eventData = JSON.parse(jsonStr); events.push(eventData); } catch (e) { console.error('解析JSON失败:', e, '原始数据:', jsonStr); } } } } return events; } // 提取有用的消息内容 - 流式更新版本 extractMessagesStream(events: any[], onProgress?: (content: string) => void): string { let fullContent = ''; for (const event of events) { if (event.event === 'message' && event.content) { fullContent += event.content; // 如果有进度回调,实时调用 if (onProgress) { onProgress(fullContent); } } } return fullContent; } // 解析车票数据的方法 parseTrainData(result: string): ParseResult { const trains: TrainInfo[] = []; const tips: TipInfo[] = []; // 清理日志前缀,提取实际内容 const lines = result.split('\n') .map(line => { // 移除日志前缀 (时间戳、进程ID等) const match = line.match(/I\s+(.*)$/); return match ? match[1].trim() : line.trim(); }) .filter(line => line.length > 0); let currentTrain: TrainInfo | null = null; let inTicketsSection = false; let inTipsSection = false; for (const line of lines) { // 跳过标题行 if (line.includes('以下是') || line.includes('【车次信息】') || line.includes('(按发车时间排序)') || line.includes('需要帮您预订')) { continue; } // 检测温馨提示开始 if (line.includes('【温馨提示】')) { inTipsSection = true; inTicketsSection = false; continue; } // 处理温馨提示 if (inTipsSection) { if (line.match(/^\d+\.\s/)) { tips.push({ content: line }); } continue; } // 检测新车次开始 (格式: "1. G6357次 高铁") const trainMatch = line.match(/^(\d+)\.\s+([A-Z0-9]+)次\s+([^\s]+)/); if (trainMatch) { // 保存上一个车次 if (currentTrain) { trains.push(currentTrain); } currentTrain = { trainNumber: trainMatch[2], trainType: trainMatch[3], departureTime: '', arrivalTime: '', duration: '', tickets: [] }; inTicketsSection = false; continue; } if (!currentTrain) continue; // 解析发车到达时间 (格式: "▶ 发车:16:08 → 到达:16:28") const timeMatch = line.match(/▶\s*发车:([0-9:]+)\s*→\s*到达:([0-9:]+)/); if (timeMatch) { currentTrain.departureTime = timeMatch[1]; currentTrain.arrivalTime = timeMatch[2]; continue; } // 解析历时 (格式: "▶ 历时:20分钟") const durationMatch = line.match(/▶\s*历时:([0-9]+分钟)/); if (durationMatch) { currentTrain.duration = durationMatch[1]; continue; } // 开始余票部分 if (line.includes('▶ 余票:')) { inTicketsSection = true; continue; } // 解析余票信息 (格式: "- 商务座 ¥54(剩余7张)") if (inTicketsSection && line.startsWith('-')) { const ticketMatch = line.match(/-\s+([^\s]+)\s+¥(\d+)\s*(([^)]+))/); if (ticketMatch) { currentTrain.tickets.push({ seatType: ticketMatch[1], price: parseInt(ticketMatch[2]), stockInfo: ticketMatch[3] }); } } // 如果遇到空行或新车次开始,结束当前余票部分 if (line === '' && inTicketsSection) { inTicketsSection = false; } } // 添加最后一个车次 if (currentTrain) { trains.push(currentTrain); } return { trains, tips }; } async sendInfo(outCity: string, goCity: string, day: string, onProgress?: (content: string) => void): Promise<string> { if (!this.token) { console.error('token不存在,请先获取token'); return '请先获取认证token'; } let requestBody = { inputs: { query: `帮我查询${day}从${outCity}站到${goCity}站的火车高铁票信息,要求有时间车次票价,几等座剩余情况` } }; try { let response = await this.httpClient.request( 'https://123.249.99.67/v1/6a4e7e844b8941ba952cbf9805a97469/agents/cc158d0d-941a-46ed-a795-dde14e44bd20/conversations/fbeb7a0f-3db2-4bc5-8fb5-dd496944910b?version=1761735459481', { method: http.RequestMethod.POST, header: { 'Content-Type': 'application/json', 'X-Auth-Token': this.token }, extraData: requestBody } ); if (response.responseCode === 200 && response.result) { // 解析SSE数据 const events = this.parseSSEData(response.result as string); // 提取消息内容,支持流式更新 const message = this.extractMessagesStream(events, onProgress); return message || '未获取到车票信息'; } else { return `请求失败,状态码: ${response.responseCode}`; } } catch (e) { console.error('发送信息失败:', e); return '网络请求失败'; } }}
  • [技术交流] J市JJ银行合规模型一体化应用实战“术”分享-合规模型软件包迁移
           上回在鲲鹏平台上搭建了合规模型的代码和SO库,同时利用port advisoring工具进行依赖库扫描并建仓。除此之外,在测试节点上还有测试要完成。这是整体迁移的部分,合规模型依赖软件包。       这些软件包从而何来,为何存在于合规模型?      要说明这个问题,要从合规模型的业务场景说起。合规模型是用于JJ银行法审合同阶段,由于智能法审功能需要依赖专家经验,尤其这几个环节:合同识别、合同比对、合同关联审核、合同模版生成。合同识别是对这类合同进行自动判别,是文本语义分析环节。得到合同文本内容后,需要对合同历史版本进行比对,分析差异。接着对评审点进行审核,这是对评审点词条进行核对,如果评审点内容跟法务库里的词条产生冲突或不符,则产生合同异常信息。如果没有异常信息,对这类合同生成一个合同模版并留白。      在这一系列动作之前,还有打标签的环节。      这些业务场景如此复杂,证明了智能法审的功能比如牵涉很多功能点,处理多模态数据,比如图片、扫描件、电子文档、影印件........这些数据处理,会引入功能繁杂的软件依赖包。      例如合同比对,当时曾测试了两种方案,采用MICROS的插件,这是专门针对office软件的插件,比对效果非常好,就是目前MICROS软件里的比对功能专业插件,但缺点是不能定制改写,只适合office系列软件文档。随着GCH要求,银行逐步采用wps等办公软件,这个插件不兼容。      如何将这些插件软件包进行鲲鹏迁移,我们下次接着聊。
  • [产品体验官] 【开发者日南京站】产品体验官:通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移
    华为云开发者日·南京站来啦!参加“通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移”体验项目提出你的建议或使用体验有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来参加吧~【体验项目】通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移【活动时间】2024年10月25日-10月31【参与方式】直接在此活动帖下方回帖提建议/提建议即可比如对产品功能的改进建议、对活动流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取每满20层抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
  • [产品体验官] 【开发者日武汉站】产品体验官:通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移
    华为云开发者日·武汉站来啦!参加“通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移”体验项目提出你的建议或使用体验有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来参加吧~【体验项目】通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移【活动时间】2024年10月16日-10月20日【参与方式】直接在此活动帖下方回帖提建议/提建议即可比如对产品功能的改进建议、对活动流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取每满20层抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
  • [获奖公告] 【开发者日专场】产品体验官:通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移
    华为云开发者日·上海站来啦!参加“通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移”体验项目提出你的建议或使用体验有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来参加吧~【体验项目】通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移【活动时间】2024年8月30日-9月6日【参与方式】直接在此活动帖下方回帖提建议/提建议即可比如对产品功能的改进建议、对活动流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
  • [获奖公告] 【云声专场】开发者体验官:通过鲲鹏DevKit代码迁移工具快速完成X86软件包重构
    华为云开发者日·广州站来啦!参加“通过鲲鹏DevKit代码迁移工具快速完成X86软件包重构”项目,提出你的建议有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来吧【体验项目】通过鲲鹏DevKit代码迁移工具快速完成X86软件包重构【活动时间】2024年5月23日-5月31日【参与方式】直接在此活动帖下方回帖提建议即可比如对产品功能的改进建议、对活动流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“通过鲲鹏DevKit代码迁移工具快速完成X86软件包重构”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
  • [软件平台] MDC610平台下使用LLVM交叉编译IPopt库
    在MDC610使用LLVM交叉编译IPOPt库时发现,IPopt需要使用gfortran编译器,当前的交叉编译工具中并没有gfortran编译器,请问这个怎么解决
  • [迁移系列] 【PG迁移】移动json串累积求和
    示例drop table if exists tmp_ta; create temp table tmp_ta( gender char, type char, price text, number text, sequence int ); insert into tmp_ta values('M','O', 1,20, 1); insert into tmp_ta values('M','M', 2,40, 2); insert into tmp_ta values('F','O', 3,30, 3); insert into tmp_ta values('F','M', 4,50, 4); insert into tmp_ta values('M','M', 4,60, 5); insert into tmp_ta values('F','O',4,40, 6);获得效果gendertypepricenumberjsonb_stringsequenceFO330{"3": "30"}3FM450{"3": "30", "4": "50"}4FO440{"3": "30", "4": "40"}6MO120{"1": "20"}1MM240{"1": "20", "2": "40"}2MM460{"1": "20", "2": "40", "4": "60"}5采用SQL示例select gender, type, price, number ,jsonb_object_agg(price,number) over(partition by gender order by sequence),sequence from tmp_ta;对应效果说明jsonb_object_agg聚合函数配合over进行移动聚合,可以实现相关json的key去重、以及累加聚合;若需要实现机械json聚合(不根据key去重),可以采用jsonb_agg及jsonb_build_object拼接select gender, type, price, number ,jsonb_agg(jsonb_build_object(price,number)) over(partition by gender order by sequence),sequence from tmp_ta;
  • [其他问题] hyper_tuner 安装过程中出现证书生成失败
    出现这种问题,不知道哪里出差错了,请各位大佬帮忙看看,能不能解决一下
  • [问题求助] (ulab环境)进行ABC的应用包迁移到ulab环境
     (ulab环境)进行ABC的应用包迁移到ulab环境,原环境中roma页面一直处于刷新状态,无法进行打包,导出,导致无法进行迁移
  • [问题求助] (ulab环境)进行ABC的应用包迁移到ulab环境
    进行ABC的应用包迁移到ulab环境,安装到ulab环境之后,项目在库下面,原因是因为安装的资产包,改成源码包在进行安装,无法安装,这种情况该如何处理麻烦尽快解决,比较急迁移环境,谢谢顾庆耀/18068848554/guqingyao@chinasoftinc.com
  • [产品体验官] 【云声专场】开发者体验官:使用DevKit快速完成C&C++程序源码迁移!提建议领开发者盲盒礼包~
    华为云开发者日·2023年度创享峰会来啦!参加“使用DevKit快速完成C&C++程序源码迁移”,提出你的建议有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来吧【体验项目】使用DevKit快速完成C&C++程序源码迁移【活动时间】2023年12月20日-12月31日【参与方式】直接在此活动帖下方回帖提建议即可比如对产品功能的改进建议、对操作流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“使用DevKit快速完成C&C++程序源码迁移”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
  • [产品体验官] 【云声专场】开发者体验官:通过鲲鹏DevKit代码迁移工具快速完成X86软件包重构!提建议领开发者盲盒礼包~
    华为云开发者日·2023年度创享峰会来啦!参加“通过鲲鹏DevKit代码迁移工具快速完成X86软件包重构”,提出你的建议有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来吧【体验项目】通过鲲鹏DevKit代码迁移工具快速完成X86软件包重构【活动时间】2023年12月20日-12月31日【参与方式】直接在此活动帖下方回帖提建议即可比如对产品功能的改进建议、对操作流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“通过鲲鹏DevKit代码迁移工具快速完成X86软件包重构”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
  • [问题求助] 【国能准能项目】项目开发环境迁移,安装源码包,报错,麻烦看下,怎么处理
    【国能准能项目】项目开发环境迁移,安装源码包,报错,麻烦看下,怎么处理
  • [ModelArts昇...] 使用torch_npu 训练模型报错 “NPU error code is:500002”
    训练框架版本: Pytorch-1.11 训练硬件: 910B训练insightface 中的 partial_fc 报错:IndexPutTraceback (most recent call last): File "train.py", line 214, in <module> main(parser.parse_args()) File "train.py", line 157, in main loss: torch.Tensor = module_partial_fc(local_embeddings, local_labels, opt) File "/home/ma-user/anaconda3/envs/Pytorch-1.11.0/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl return forward_call(*input, **kwargs) File "/cache/development-space/arcface_torch/partial_fc.py", line 213, in forward loss = self.dist_cross_entropy(logits, labels) File "/home/ma-user/anaconda3/envs/Pytorch-1.11.0/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl return forward_call(*input, **kwargs) File "/cache/development-space/arcface_torch/partial_fc.py", line 498, in forward return DistCrossEntropyFunc.apply(logit_part, label_part) File "/cache/development-space/arcface_torch/partial_fc.py", line 464, in forward loss[index] = logits[index].gather(1, label[index])RuntimeError: Run:/usr1/workspace/FPTA_Daily_open_pytorchv1.11.0-3.0.tr6/CODE/torch_npu/csrc/framework/OpParamMaker.cpp:136 NPU error,NPU error code is:500002EZ9999: Inner Error, Please contact support engineer!EZ9999 The input dtype of x1 x2 y is equal, please check![FUNC:IndexPutVerify][FILE:matrix_calculation_ops.cc][LINE:4676] TraceBack (most recent call last): Verifying IndexPut failed.[FUNC:InferShapeAndType][FILE:infershape_pass.cc][LINE:135] Call InferShapeAndType for node:IndexPut(IndexPut) failed[FUNC:Infer][FILE:infershape_pass.cc][LINE:117] process pass InferShapePass on node:IndexPut failed, ret:4294967295[FUNC:RunPassesOnNode][FILE:base_pass.cc][LINE:530] build graph failed, graph id:140, ret:1343242270[FUNC:BuildModel][FILE:ge_generator.cc][LINE:1484] [Build][SingleOpModel]call ge interface generator.BuildSingleOpModel failed. ge result = 1343242270[FUNC:ReportCallError][FILE:log_inner.cpp][LINE:161] [Build][Op]Fail to build op model[FUNC:ReportInnerError][FILE:log_inner.cpp][LINE:145] build op model failed, result = 500002[FUNC:ReportInnerError][FILE:log_inner.cpp][LINE:145] build graph failed, graph id:141, ret:1343242270[FUNC:BuildModel][FILE:ge_generator.cc][LINE:1484] build graph failed, graph id:142, ret:1343242270[FUNC:BuildModel][FILE:ge_generator.cc][LINE:1484]