云服务器内容精选

  • AI原生引擎引擎SDK功能介绍 表5 AI原生引擎引擎SDK功能矩阵 接口类型 接口名 函数名 Python 大模型相关接口 文本生成 ModelRouter.chat.completion.create √ 向量生成 ModelRouter.embeddings.create √ 文生图 ModelRouter.images.generate √ 图生文 ModelRouter.images.image2text √ 知识库相关接口 知识库查询 KnowledgeRetriever.retrieve √ Filter构造 KnowledgeFilterCondition. single_filter_condition √ Filter融合 KnowledgeFilterCondition. combine_filter_condition √ Order构造 KnowledgeSortCondition. single_order_condition √ Order融合 KnowledgeSortCondition. combine_order_condition √ Prompt相关接口 生成prompt模板 PromptTemplate.from_template √ 实例化prompt模板 PromptTemplate.format √ 应用相关接口 调用应用 ApplicationCenter.get_tools √
  • 配置Rainbow 修改Rainbow SDK配置,切换SDK数据源,新增Cloud Map配置、STS配置,配置如下: nuwa: sts: serverDomain: 10.33.102.162:8080 configPath: certs/WiseCloudNuwaService/WiseCloudNuwaCloudMapAdminService/WiseCloudNuwaCloudMapAdminService.ini enable: true cloudmap: serverAddr: http://10.33.113.125:8080 namespaceName: cn_dev_default rainbow: db0: datasource: beanName: rainbowDs dataSourceName: xxxx //与运维中心WiseDBA服务SDK配置界面的值保持一致 appName: xxx //业务的服务名 dbGroupKey: xxx //实例名称 dbName: xxxxx //Schema名称 connectionProperties: characterEncoding=utf8;connectTimeout=10000;socketTimeout=10000;autoReconnect=true;useUnicode=true;serverTimezone=Asia/Shanghai useSts: true mybatis: base-package: com.huawei.nuwa.map.demo.consumer.middleware.dao mapper-locations: classpath:mapper/rainbow/*.xml
  • 初始化Rainbow SDK 代码如下: package com.huawei.demo.serviceb.config; import javax.sql.DataSource; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.mapper.MapperScannerConfigurer; import org.springframework.context.EnvironmentAware; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.DependsOn; import org.springframework.context.annotation.Import; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.core.env.Environment; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.support.TransactionTemplate; import com.huawei.nuwa.map.client.NuwaMapClient; import com.huawei.nuwa.map.spring.boot.autoconfigure.NuwaCloudMapAutoConfiguration; import com.huawei.rainbow.jdbc.DbGroupDataSource; import com.huawei.wisesecurity.sts.springboot.security.configuration.StsEncryptablePropertiesConfiguration; /** * Rainbow启动 */ @Configuration @Order(Ordered.HIGHEST_PRECEDENCE) @Import(value = {NuwaCloudMapAutoConfiguration.class, StsEncryptablePropertiesConfiguration.class}) public class ApplicationAutoConfig implements EnvironmentAware { private Environment environment; /** * Rainbow需要依赖STS和Cloud Map启动,创建dataSource * * @param client NuwaMapClient值对象 * @return DataSource 初始化完成的数据源数据源 */ @Bean @DependsOn({"stsBootStrap"}) public DataSource createDataSource(NuwaMapClient client) { DbGroupDataSource dataSource = new DbGroupDataSource(); dataSource.setUseSts(true); dataSource.setAppName(environment.getProperty("wiseDba.appName")); dataSource.setDbGroupKey(environment.getProperty("wiseDba.groupKey")); dataSource.setDbName(environment.getProperty("wiseDba.dbName")); dataSource.init(); return dataSource; } /** * 事务管理创建 * * @param dataSource 数据源 * @return DataSourceTransactionManager 事务管理 */ @Bean public DataSourceTransactionManager createTransaction(DataSource dataSource) { DataSourceTransactionManager transaction = new DataSourceTransactionManager(); transaction.setDataSource(dataSource); return transaction; } @Bean public JdbcTemplate createJdbcTemplate(DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean("sqlSessionFactoryBean") public SqlSessionFactoryBean createMybatisSqlSessionFactoryBean(DataSource dataSource) { SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean(); sessionFactoryBean.setDataSource(dataSource); // 数据源配置项 org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration(); // 允许jdbc自动生成主键 configuration.setUseGeneratedKeys(true); // 使用列标签代替列名 configuration.setUseColumnLabel(true); // 打开下划线命名自动转换为驼峰命名开关 configuration.setMapUnderscoreToCamelCase(true); sessionFactoryBean.setConfiguration(configuration); return sessionFactoryBean; } @Bean public TransactionTemplate createTransactionTemplate(DataSourceTransactionManager dataSourceTransactionManager) { TransactionTemplate template = new TransactionTemplate(); template.setTransactionManager(dataSourceTransactionManager); return template; } @Bean public MapperScannerConfigurer createMapperScannerConfigurer() { MapperScannerConfigurer configurer = new MapperScannerConfigurer(); configurer.setBasePackage("com.huawei.demo"); configurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean"); return configurer; } @Override public void setEnvironment(Environment environment) { this.environment = environment;
  • 常见问题 Domain not registered或Service not registered 领域或微服务没有进行注册,请根据STS 2.0业务接入指南的指导自行注册领域或微服务。 connect timed out或read timed out 它有两种原因,connect timed out或read timed out: 可以在sts.properties中添加超时配置,单位为毫秒: sts.connect.timeout=10000 //遇到 connect timed outsts.socket.timeout=10000 //遇到 read timed out Encrypt Permission Denied 这是因为管理台上注册微服务时,默认将微服务注册成了NORMAL。只有角色为PLATFORM的微服务才有权限调用加密接口。 fail to init session key fail to init session key fail to get master key from sts 这是因为集成了STS 1.0,也就是集成了sts-cse-sdk,从STS 1.0的服务器获取master key失败。因为STS 1.0的服务器需要业务自己去搭建,在没有搭建的情况下,当然会获取失败。 如果已经搭建,检查业务的yaml文件中配置的environment参数和STS 1.0微服务中的environment是否一致,如果不一致则修改成一致。 mac check in GCM failed 这个错误的原因就是密钥和密文不匹配导致无法解密。需要确认业务配置文件中的密文是从哪里来的? 通过IaC由配置中心下发: 检查IaC代码中配置的敏感配置项ID中的服务或微服务名是否属于该运行的微服务。 服务级:Service/{ServiceName}/{SensitiveName}/{tag} 微服务级:MicroService/{ServiceName}/{MicroServiceName}/{SensitiveName}/{tag} 通过StsAgent加密后,手工配置: 检查加密的时候使用的服务级别servicekek还是微服务级别kek,和密文中的级别是否一致,服务名和微服务名是否和该运行的微服务一致?加密得到密文的STS环境和运行的STS环境是否一致?例如测试环境加密的密文是不能在生产环境解密。 # 使用微服务kek加密 # /opt/huawei/apps/wisesecurity/stsagent/stsagent encrypt -s ServiceName -m MicroServiceName -x -h 10.33.102.162:8080 # 使用服务servicekek加密 # /opt/huawei/apps/wisesecurity/stsagent/stsagent encrypt -s ServiceName -m MicroServiceName -ts ServiceName -x -h 10.33.102.162:8080 中间件的口令解密 业务集成了Cloud Map对接中间件,业务不用关心口令解密的问题。 业务使用sts agent加密明文口令后配置到相应管理台。参考2,看加密用的密钥和代码中解密的密钥是否对应(服务级还是微服务级kek),以及加密时使用的微服务名和服务名是否一致。 不同微服务的证书不可混用,业务使用自己微服务的证书及配置文件进行SDK的初始化,解密自己微服务的配置。 Undefined provider local 当创建AESCryptor时,如果不用@指定KeyProvider,那么它会默认调用local KeyProvider。在使用kek或servicekek时,要指定KeyProvider为@sts。 //错误 AESCryptor cryptor = new AESCryptor.Builder().withKey("kek").withAlg(CryptoAlg.AES_GCM).build(); //正确 AESCryptor cryptor = new AESCryptor.Builder().withKey("kek@sts").withAlg(CryptoAlg.AES_GCM).build(); 申请证书时Make sure haveged is running步骤或try active service步骤报错。 这是因为机器上没有启动haveged服务。haveged是一个随机数的熵的提供方,它可以解决在某些情况下,系统熵过低的问题。 规避办法:在部署步骤前面加上sudo步骤;或者,到机器上,手动执行service haveged start命令,启动haveged服务。 解决方案:在申请证书步骤前添加sudo和shell-exec步骤,确保haveged服务为启动状态。 sudo systemctl enable haveged.service && sudo systemctl start haveged.service非EulerOS可以使用sudo service haveged start命令。 service ini config file not exists 这是因为STS在初始化时,找不到初始化配置文件(ini 文件)或者微服务名称.sts.p12证书文件不存在。该文件是部署微服务是通过stsagent申请证书时生成的,默认路径在/opt/huawei/certs/{serviceName}/{microServiceName},业务也可以通过相应参数来修改。 解决办法: 首先确认配置的STS参数: 通过配置文件配置的,查看sts/sts.properties 文件,检查sts.config.path配置的文件是否存在。 通过NUWA配置文件,检查microservice.yaml文件中nuwa.security.sts.configPath配置的文件是否存在。 nuwa:security:sts:serverDomain: 10.33.102.109:8080configPath: /opt/huawei/certs/{ServiceName}/{MicroServiceName}/{MicroServiceName}.ini 通过Java Bean方式配置的,也就是通过类似以下代码初始化,检查sts.config.path配置的文件是否存在 Properties properties = new Properties();properties.setProperty("sts.server.domain", "10.33.102.162:8080");properties.setProperty("sts.config.path", "D:/Test/ConsumerService/ConsumerMicroService1/ConsumerMicroService1.ini");StsKeyApi.initWith(properties); 如果配置的是相对路径,则必须是相对于resource目录的路径。如果是在IDEA中运行使用,则检查target下是否有该文件,如果没有则重新compiler,IDEA最终是从target下获取resource文件。 另外,请确认部署过程中证书申请的步骤在业务安装和启动流程之前,如果业务先启动,之后才进行证书的申请,配置文件还未生成,也会出现找不到配置文件的问题。 若不存在,则要参考STS 2.0业务接入指南申请证书。如果配置的文件路径不是stsagent生成的默认路径,则需要手工将** /opt/huawei/certs/{ServiceName}/{MicroServiceName}/**拷贝到相应的路径下。 Fail to derive key with master key 这是因为STS没有初始化,就去调用了获取认证凭据的接口。 解决办法:检查是否调用了StsKeyApi.init()或StsKeyApi.initWith(properties)。 如何解密微服务证书的口令 微服务证书的口令使用本地随机的根密钥和工作密钥加密,口令明文使用StsKeyStoreUtil.getKeyStoreValue()进行解密。 Access Permission Denied 微服务集成STS SDK,获取相应微服务的Credentials时报如下错误Reqeust sts server fail, Request Token form xxxx&yyyy failed, Access Permission Denied。 这是由于provider没有该微服务配置相应的ACL(Access Control List),导致没有权限获取访问该provider的credentials。 Invalid api name STS Agent执行的时候报Invalid api name,这是由于 IaC 中使用了STS Agent高版本能力,但主机上STS Agent版本过低并且IaC中没有强制升级STS Agent导致的。通过IaC或手动更新STS Agent,使用1.1.5.100及之前的部署包时请打开force_install开关。 微服务有测试,镜像,海外,灰度等不同的环境,STS管理台如何管理这些敏感配置项? STS管理台在不同站点是分开部署。同一站点下假如想区分不同的场景,例如生产和灰度,开发,测试和镜像,则可以使用敏感配置项标签区分。 STS管理台敏感配置项最大长度是多少? 5000个字符。 本地缓存的STS KEK,ServiceKEK以及认证凭据是如何保护? key.json由本地随机生成的rootkey和workkey加密保护,kek.json由STS KEK保护。 加密算法采用AES GCM。 部署过程report certificate to cms报错,提示"An unknown error occurred when report certificates!"。 首先检查/opt/huawei/certs/{service}/{microservice}下stscerttool.log中是否有错误信息。 若日志中出现异常提示[Errno -2] Name or service not known,请使用以下命令确认系统版本是否为欧拉OS 2.9 [EulerOS release 2.0 (SP9)]: lsb_release -a 检查主机hostname是否超过64个字符,如果是的话,修改主机名。 主机存在无法解析出主机IP的问题,参考如下步骤检查: 检查/etc/nsswitch.conf中是否包含hosts项,且对应配置包含files或myhostname。 若添加配置files,检查/etc/hosts,添加当前主机的IP映射[host_ip] [hostname],例如:10.33.100.100 host-10-33-100-100。 若添加配置myhostname,通常无需进行其他修改。 运行以下命令检查是否有其他异常。 hostname -i python -c "import socket; print(socket.gethostbyname(socket.getfqdn(socket.gethostname())))" 如何手工注册微服务 使用IaC部署在WiseDBA上创建数据库实例,报没有注册STS的错误,如果业务还没有接入STS,可以在STS管理台进行手工注册该微服务。 如何将服务器上生成的STS微服务证书信息迁移到window机器上调试。 将服务器上/opt/huawei/certs/{serviceName}/{microServiceName}目录下的所有问题打包下载到本机。修改{microServiceName}.ini 文件中 a_file,b_file ,c_file,d_file 的路径,该路径支持绝对路径或相对路径(相对于ini文件的路径,一般为{microServiceName}/apple/a)。修改sts.properties中 sts.config.path为实际的ini文件的路径。 missed = in sensitive string value / missed value in sensitive string 解密敏感配置项的时候报missed = in sensitive string value错误,这是由于敏感配置密文格式不正确。敏感配置项密文格式如下: kek加密密文格式: ENC(key=kek, value=xxxx) servicekek加密密文格式: ENC(key=servicekek, value=xxxx) Unable to execute refresh credentials function 微服务日志STS SDK抛出如下异常,这是由于对端开启了STS的微服务认证,MapConnectCoreService&MapConnectCoCreateService未给该微服务配置ACL。 解决方案:让对端给该微服务配置ACL。 com.huawei.wisesecurity.sts.sdk.exception.StsException: Unable to execute refresh credentials function for service.identity=MapConnectCoreService&MapConnectCoCreateService STS对JDK/JRE有什么要求? 建议使用最新的1.8版本JDK/JRE。 invalid common name STS SDK抛出如下异常: InvocationException: code=403;msg=errorCode=1002;errorMessage=invalid common name: AppGalleryPromotionUserService 这是由于 CS E的yaml文件中配置的微服务名和使用的STS微服务证书中的微服务名不一致导致的,使用部署时采用STSAgent自动签发的证书,里面是标准的PBI服务名和微服务名。 STS管理台敏感配置修改后如何刷新到微服务的配置文件中? 敏感配置项是通过配置服务发布到微服务配置文件中。在STS管理台修改后,需要在部署服务上重新发布修改的配置项。 在配置中心找到该配置项 重新发布该配置项: fail to parser work key json file 检查work_key.json格式是否正确,文件中的description,mac字段需要删除。 Odd number of characters 业务加载工作密钥文件的时候报Odd number of characters异常,这是由于在STS管理台配置的hex编码的密钥明文的少或多了一个char。Hex编码字符串必须是偶数个字符。 fail to get master key from sts 业务集成了STS 1.0的认证能力,需要从STS 1.0 Server上获取主密钥失败。STS 1.0 Server是部署在业务集群中,注册到业务同一个注册中心: 在相应注册中心上检查WiseSecurity:SecurityTokenService微服务是否存在,如果不存在,则找到相应部署机器启动该微服务。 检查业务的yaml文件中配置的environment参数和STS 1.0微服务中的environment是否一致,如果不一致则修改成一致。 missed header x-sts-token / x-sts-session provider通过STS SDK认证请求时,从http消息中无法获取到相应的STS认证header信息。 直接用postman访问,会缺少相应的认证凭据而失败。因此如果测试需要,可以将微服务的STS认证放通开关打开。放通开关配置在sts.properties配置文件中的sts.bypass.enable参数:true表示放通,false表示不放通,默认是不放通。 consumer侧开启了放通,但provider侧没有放通。 sts.properties文件中未配置sts.config.path指定STS微服务证书加载路径(如果是IDEA中执行的,检查一下target下是否存在sts.properties)。STS SDK默认加载sts/sts.properties,业务也可以通过jvm启动参数sts.properties修改该文件的路径。 如果是通过NUWA初始化STS的,检查yaml文件中是否有配置nuwa.security.sts.configPath。 nuwa: security: sts: serverDomain: 10.33.102.109:8080 configPath: /opt/huawei/certs/{ServiceName}/{MicroServiceName}/{MicroServiceName}.ini 如果通过Java Bean方式初始化,检查是否有设置sts.config.path配置项。 Properties properties = new Properties(); properties.setProperty("sts.server.domain", "10.33.102.162:8080"); properties.setProperty("sts.config.path", "D:/Test/ConsumerService/ConsumerMicroService1/ConsumerMicroService1.ini"); StsKeyApi.initWith(properties); STS管理台录入敏感配置项使用什么加密算法加密。 敏感配置项采用STS给业务分配的KeK/ServiceKek(256位)使用AES/GCM加密。 Unable to resolve non-exist credentials StsCseClientFilter中发送请求时报如下异常和错误,这是由于无法获取到访问该微服务凭据抛出异常。检查服务初始化STS SDK时是否有异常(查看 logback或log4j中配置的com.huawei.wisesecurity.sts包路径的日志文件)。 invalid certificate 回答:确认服务名和证书名是一致的,证书是重新下发的,再判断业务连接的STS server1.0上的证书是否有修改。 注意:需要确定当前环境连接的STS服务器是正确的,可以看性能环境对应的注册中心是哪个,然后再这个注册中心上portal上看STS 1.0是那台服务器注册上去的。 get sts token --Timestamp out of range/Timestamp is more earlier or later 这是由于STS开启防重放攻击(和STS服务器之间时间差小于5分钟),检查业务服务器的时间是否正确。 configId can not be blank 部署服务或者NUWARutime获取敏感配置项时,请求要获取的敏感配置项的列表中有值为空。 管理台上服务下无法选到相应的微服务。 在安全管理台上配置敏感配置项、证书时,服务下只显示已经在相应环境下在STS上注册过的微服务。需要让站点的业务SRE在运维管理台上进行微服务注册。 KeyStoreException: empty private key or certificate 出现该提示,是因为主机上STS实例证书(位于/opt/huawei/certs/{服务}/{微服务}/下)并不完整,很可能是由于前一次部署过程中出错导致,请检查该证书是否有效,可使用以下命令对证书进行检查。 /opt/huawei/apps/wisesecurity/stsagent/stsagent check -s {服务} -m {微服务} 如果提示校验错误信息,请重新执行stsagent-install部署步骤进行证书的重新申请。 Unable to find SecretKey version=0 业务代码中使用STS密钥解密非STS加密的数据导致的错误。 Micro service xxx&yyy not registered 微服务没有在STS管理台进行注册。 Fail to read service info from keystore STS SDK初始化是需要从STS的身份证书jks文件中读取服务和微服务信息,加载jks文件的时候异常了。一般是该jks文件有异常。 SDK会根据service ini文件中的subject的CN项作为微服务名读取证书文件 {微服务名}.sts.p12 [cert] subject = C=CN,O=Huawei,OU=Huawei CBG Cloud MicroService,CN=SecurityTokenServiceDemoSelfConsumer ip = 127.0.0.1 invalid timestamp 检查业务主机的时间和标准时间差异是否超过5分钟。 timeout awaiting response headers sts-go-sdk内的 ResponseHeaderTimeout参数值设置过小,目前默认为100,在初始化时传入参数“sts.responseHeader.timeout”修改该值大小。 not an SSL/TLS record client和server两边SSL不一致:client通过HTTP访问,但Server是提供的HTTPS的服务。 如果是 tomcat + NUWA/CSE,tomcat最终对外提供是http还是https是由tomcat的配置文件决定的,NUWA/CSE的yaml文件中定义的只是注册到注册中心告诉对端提供的是 http还是https。 Some config items not found iac provider在plan阶段会去校验敏感配置项是否存在于STS管理台,如果没有录入敏感配置项,或者敏感配置项的坐标不正确,则报此错,需要业务自己检查坐标是否正确。 fail to get provider ** credentials consumer集成sts-go-sdk在获取provider端访问凭据的时候失败,需要在provider端配置ACL,管理台录入ACL后,需等十分钟才生效。 启动时如果发现类似错误: either 'jasypt.encryptor.password', one of ['jasypt.encryptor.private-key-string', 'jasypt.encryptor.private-key-location'] for asymmetric encryption, or one of ['jasypt.encryptor.gcm-secret-key-string', 'jasypt.encryptor.gcm-secret-key-location', 'jasypt.encryptor.gcm-secret-key-password'] for AES/GCM encryption must be provided for Password-based or Asymmetric encryption 那么可以按两个方向排查: 检查启动类是否添加@EnableStsEncryptableProperties ,需要添加该注解,才能初始化StsStringEncryptor对象。 如果已经添加,那可能是触发自动解密的地方距离启动太早,导致 spring context 初始化还未完成,不能获取到StsStringEncryptor对象。例如,Eureka应用的bootstrap.yml中如果包含敏感配置项,就会报这个错,需要将敏感配置项移到其他配置文件中,即可解决。 Unable to refresh credentials for service SecurityTokenService&SecurityTokenMicroService 该问题是STS初始化的时候,从kek.json或者keys.json获取本地密钥失败,导致无法从STS-Server获取凭据。 解决方法:找到密钥的缓存地址,/${HOME}/.sts/服务名/微服务名/kek.json,删除kek.json和keys.json文件,重新启动即可。 父主题: STS SDK
  • AI原生应用引擎SDK介绍 AI原生应用引擎SDK面向开发者提供了一套搭建原生应用的Python SDK,包含了模型调用,知识获取,工具调用等功能。开发者可以使用SDK调用AI原生应用引擎的各种能力,帮助开发者快速构建大模型应用。 AI原生应用引擎SDK获取地址:wiseagent-dev-sdk-python。您也可以参考下载SDK开发Agent获取AI原生应用引擎SDK并进行完整性校验。 AI原生应用引擎SDK参考文档:AI原生应用引擎。
  • 运行时引擎SDK类型介绍 运行时引擎为开发者提供访问凭证管理服务(Access Credential Management Service,简称ACMS)、服务发现(NUWA Cloud Map,简称Cloud Map)、负载均衡(Software/Server Load Balancer,简称SLB)和数据库治理(WiseDBA)的SDK,方便开发者将运行时引擎的能力快速集成到自己的应用中。 表1 SDK列表 SDK分类 说明 编程语言 下载地址 参考文档 ACMS的SDK:STS SDK STS SDK(Security Token Service,简称STS)服务软件开发工具包是对访问凭据管理服务(ACMS)提供的REST API进行的封装,以简化用户的开发工作。用户直接调用SecurityTokenService SDK提供的接口函数即可实现使用ACMS业务能力的目的。 使用STS SDK即可使用运维中心ACMS的敏感配置项托管和微服务之间请求认证功能。 Java nuwa-open-sdk-1.1.0-20240204093135.zip 完整性校验nuwa-open-sdk-1.1.0-20240204093135.zip.sha256 下载包nuwa-open-sdk-1.1.0-20240204093135.zip中的文件介绍请参见表2。 STS SDK Cloud Map的SDK:Cloud Map SDK Cloud Map SDK服务软件开发工具包是对服务发现(Cloud Map)服务提供的REST API进行的封装,以简化用户的开发工作。用户直接调用Cloud Map SDK提供的接口函数即可实现使用Cloud Map服务业务能力的目的。 Java Cloud Map SDK SLB的SDK:Gray SDK Gray SDK负责业务的负载均衡,Nginx组件通过反向代理实现了业务的负载均衡,通过丰富的扩展功能,可以对HTTP消息定制丰富的控制策略。 使用Gray SDK即可使用运维中心负载均衡(SLB)的灰度管理功能。 Java Gray SDK WiseDBA的SDK:Rainbow SDK Rainbow SDK构建云原生DevOps全流程可信build-in的数据库治理解决方案。使用Rainbow SDK即可使用运维中心的数据库治理(WiseDBA)功能。 提供MySQL/Cassandra/ GaussDB /DRDS全流程设计、开发、发布、运维(管理、治理、诊断)方案。 可信build-in:过程可信,结果可信,接入安全(无人工接入密码),操作(资源高危操作)安全。 Java Rainbow SDK 表2 SDK jar包介绍 文件夹 SDK分类 对应的jar包 nuwa-cse-sdk:适用于基于NUWA框架且不使用spring boot的项目 STS SDK sts-key-sdk-1.1.17.109.jar sts-sdk-base-1.1.17.109.jar cloudsoa-security-1.1.13.100.jar Cloud Map SDK nuwa-cloudmap-config-servicecomb-1.0.12.100.jar nuwa-cloudmap-core-1.0.12.100.jar nuwa-cloudmap-registry-cse3-1.0.12.100.jar nuwa-cloudmap-registry-servicecomb-common-1.0.12.100.jar Gray SDK graysdk-core-1.4.14.500.jar graysdk-cse3-1.4.14.500.jar nuwa-apaas-graysdk-3.1.5.100.jar Rainbow SDK rainbow-proxy-1.2.18.102.jar gpaas-middleware-common-2.2.6.100.jar NUWA基础SDK nuwa-boot-container-3.1.5.100.jar nuwa-core-3.1.5.100.jar nuwa-cse-foundation-3.1.5.100.jar nuwa-share-libs-3.1.5.100.jar nuwa-tenant-sdk-3.1.5.100.jar spring-cloud-sdk:适用于基于Spring Cloud框架的项目 STS SDK sts-key-sdk-1.1.19.100.jar sts-sdk-base-1.1.19.100.jar sts-spring-boot-1.1.19.100.jar cloudsoa-security-1.1.14.101.jar Cloud Map SDK nuwa-cloudmap-core-1.0.12.100.jar nuwa-cloudmap-spring-boot-starter-1.0.12.100.jar spring-cloud-starter-cloudmap-discovery-1.0.12.100.jar Gray SDK 不支持 Rainbow SDK gpaas-jetcd-api-2.0.0.106.jar gpaas-jetcd-v2-2.0.0.106.jar gpaas-middleware-common-2.2.6.100.jar nuwa-gpaas-rainbowproxy-3.2.2.100.jar nuwa-rainbowproxy-spring-boot-starter-3.2.2.100.jar rainbow-api-1.2.18.201.jar rainbow-core-1.2.18.201.jar rainbow-core-drds-1.2.18.201.jar rainbow-core-gaussdb-1.2.18.201.jar rainbow-proxy-1.2.18.201.jar NUWA基础SDK nuwa-boot-container-3.2.2.100.jar nuwa-core-3.2.2.100.jar nuwa-core-spring-boot-starter-3.2.2.100.jar spring-cse-sdk:适用于基于NUWA框架且使用spring boot的项目 STS SDK sts-key-sdk-1.1.19.100.jar sts-sdk-base-1.1.19.100.jar sts-spring-boot-1.1.19.100.jar cloudsoa-security-1.1.14.101.jar Cloud Map SDK nuwa-cloudmap-config-servicecomb-1.0.12.100.jar nuwa-cloudmap-core-1.0.12.100.jar nuwa-cloudmap-registry-cse3-1.0.12.100.jar nuwa-cloudmap-registry-servicecomb-common-1.0.12.100.jar nuwa-cloudmap-spring-boot-starter-3.2.2.100.jar nuwa-gpaas-cloudmap-3.2.2.100.jar Gray SDK graysdk-core-1.4.14.500.jar graysdk-cse3-1.4.14.500.jar nuwa-apaas-graysdk-3.2.2.100.jar nuwa-graysdk-spring-boot-starter-3.2.2.100.jar Rainbow SDK nuwa-gpaas-rainbowproxy-3.2.2.100.jar nuwa-rainbowproxy-spring-boot-starter-3.2.2.100.jar rainbow-proxy-1.2.18.102.jar gpaas-middleware-common-2.2.6.100.jar NUWA基础SDK nuwa-boot-container-3.2.2.100.jar nuwa-core-3.2.2.100.jar nuwa-core-spring-boot-starter-3.2.2.100.jar nuwa-cse-foundation-3.2.2.100.jar nuwa-cse-foundation-spring-boot-starter-3.2.2.100.jar nuwa-tenant-sdk-3.2.2.100.jar tools:configparser为自定义参数解析工具,通过NUWA部署时,解析参数模板,将模板中的参数变量,替换为实际的配置项值,具体使用方式请参见使用configparser工具优化代码。 -
  • 安装AI原生应用引擎SDK 执行如下命令,快速安装。 pip install huawei_wiseagent_dev_sdk_python-{version}-py3-none-any.whl 若已经安装过最新版本SDK,可以忽略此步骤。 将${version}替换成实际所使用的SDK版本。 如果采用本地依赖的方式引入SDK,即手动将本地下载的SDK包引入到工程,还需要添加间接依赖:httpx、pydantic、jinja2。
  • 参数说明 表2 参数说明 参数名称 参数类型 是否必选 参数描述 vector_index_id str True 知识库id query str False 输入内容 top_n int False 返回条数限制 offset int False 起始位置 similarity_min float False 返回相似性最小值阈值 filter dict False 过滤条件 order_by dict False 排序条件
  • 实例化 表1 实例化参数 参数名 参数类型 是否必选 参数描述 base_url str False 模型网关开放的ip和端口,有默认值可以不填。功能类似OpenAI的base_url。 custom_hearders dict False 其他自定义请求头信息。 http_client httpx.client False 自定义的httpx client。 kwargs - False 其他可选参数,如api_key、timeout等。
  • 实例化 表1 实例化参数 参数名 参数类型 是否必选 参数描述 base_url str False 模型网关开放的ip和端口,有默认值可以不填。功能类似OpenAI的base_url。 custom_hearders dict False 其他自定义请求头信息。 http_client httpx.client False 自定义的httpx client。 kwargs - False 其他可选参数,如api_key、timeout等。
  • 实例化 表1 实例化参数 参数名 参数类型 是否必选 参数描述 base_url str False 模型网关开放的ip和端口,有默认值可以不填。功能类似OpenAI的base_url。 custom_hearders dict False 其他自定义请求头信息。 http_client httpx.client False 自定义的httpx client。 kwargs - False 其他可选参数,如api_key、timeout等。
  • 实例化 表1 实例化参数 参数名 参数类型 是否必选 参数描述 base_url str False 模型网关开放的ip和端口,有默认值可以不填。功能类似OpenAI的base_url。 custom_hearders dict False 其他自定义请求头信息。 http_client httpx.client False 自定义的httpx client。 kwargs - False 其他可选参数,如api_key、timeout等。
  • 接口调用 chat 接口调用:ModelRouter.chat.completion.create 参数说明 表3 参数说明 参数名 参数类型 是否必选 参数描述 messages List[str] True 包含到目前为止的对话的消息列表 model str True 模型id stream bool False 是否流式返回 kwargs - False 其他openai chat completion参数 返回值 表4 返回值 键 值类型 描述 id str 唯一标识 choices list 文本生成选项列表。如果n大于1,则可以是多个 created int Unix时间戳(以秒为单位) model str 使用的模型 usage str 请求token用量 object str 当前为chat.completion
  • 接口调用 PromptTemplate.from_template 参数说明 表2 参数说明 参数名称 参数类型 是否必选 参数描述 template str True 提示语模板 template_format str False 提示语模板格式,支持f-string、jinja2两种。默认f-string partial_variable dict False 格式化模板的部分变量 返回值:PromptTemplate object
  • 类属性 表1 类属性 参数名 参数类型 是否必选 参数描述 input_variables List[str] True 提示语模板所需的变量名称列表 template str True 提示语模板 template_format str True 提示语模板格式,支持f-string、jinja2两种。默认f-string partial_variable dict False 格式化模板的部分变量 validate_template bool False 是否尝试验证模板