配置SDK
基础配置项
SDK依赖的配置项主要通过读取llm.properties配置文件;如果配置文件名不为llm.properties,需要在项目中主动设置,方法如下:
- 在resources路径下,创建llm.properties文件,并根据实际需要配置相应的值。
- 如果需要自定义配置文件名,可以参考以下代码设置。
// 建议在业务项目入口处配置 // 不需要添加.properties后缀 ConfigLoadUtil.setBaseName("application");
- 完整配置项如下:
配置项中的密码等字段建议在配置文件或者环境变量中密文存放,使用时解密,确保安全,详见配置文件敏感信息加密配置。
################################ GENERIC CONFIG ############################### ## User-defined Prompt. # sdk.prompt.path= ## Proxy. # Examples: http://127.0.0.1:8000 ; # # sdk.proxy.enabled= # sdk.proxy.url= # sdk.proxy.user= # sdk.proxy.password= ## Generic IAM info. This config is used when the specified IAM is not configured. ## Either user password authentication or AK/SK authentication. # sdk.iam.url= sdk.iam.domain= sdk.iam.user= sdk.iam.password= sdk.iam.project= sdk.iam.ak= sdk.iam.sk= sdk.iam.disabled= ################################ LLM ############################### ## Pangu # Examples: https://{endPoint}/v1/{projectId}/deployments/{deploymentId} ; # sdk.llm.pangu.url= ## If necessary, you can specify the IAM configuration. # sdk.llm.pangu.iam.url= # sdk.llm.pangu.iam.domain= # sdk.llm.pangu.iam.user= # sdk.llm.pangu.iam.password= # sdk.llm.pangu.iam.project= # sdk.llm.pangu.iam.disabled= ## If necessary, you can specify the proxy status. # sdk.llm.pangu.proxy.enabled= ## Gallery # Examples: https://{endPoint}/v1/infers/{deploymentId} ; # sdk.llm.gallery.url= ## If necessary, you can specify the IAM configuration. # sdk.llm.gallery.iam.url= # sdk.llm.gallery.iam.domain= # sdk.llm.gallery.iam.user= # sdk.llm.gallery.iam.password= # sdk.llm.gallery.iam.project= # sdk.llm.gallery.iam.disabled= ## If necessary, you can specify the proxy status. # sdk.llm.gallery.proxy.enabled= ################################ EMBEDDINGS ############################### ## CSS # Examples: https://{endPoint}/v1/{projectId}/applications/{appId}/{modelVersion} ; # sdk.embedding.css.url= ## If necessary, you can specify the IAM configuration. # sdk.embedding.css.iam.url= # sdk.embedding.css.iam.domain= # sdk.embedding.css.iam.user= # sdk.embedding.css.iam.password= # sdk.embedding.css.iam.project= # sdk.embedding.css.iam.disabled= ## If necessary, you can specify the proxy status. # sdk.embedding.css.proxy.enabled= ################################ MEMORY ############################### ## CSS or ES # Examples: http://127.0.0.1:9200,http://127.0.0.2:9200 ; # sdk.memory.css.url= sdk.memory.css.user= sdk.memory.css.password= ## DCS or Redis # Examples: 127.0.0.1:6379 ; # # sdk.memory.dcs.url= # sdk.memory.dcs.user= # sdk.memory.dcs.password= ## RDS or Mysql # Examples: jdbc:mariadb://127.0.0.1:3306/sdk?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai ; # # sdk.memory.rds.url= # sdk.memory.rds.user= # sdk.memory.rds.password= # sdk.memory.rds.poolSize= ################################ DOC SPLIT ############################### ## CSS # Examples: https://{endPoint}/v1/{projectId}/applications/{appId} ; # # sdk.doc.split.css.url= # sdk.doc.split.css.filepath= # sdk.doc.split.css.mode= ## If necessary, you can specify the IAM configuration. # sdk.doc.split.css.iam.url= # sdk.doc.split.css.iam.domain= # sdk.doc.split.css.iam.user= # sdk.doc.split.css.iam.password= # sdk.doc.split.css.iam.project= # sdk.doc.split.css.iam.disabled= ## If necessary, you can specify the proxy status. # sdk.doc.split.css.proxy.enabled=
日志打印配置
SDK日志采用slf4j框架,业务项目中可以使用logback、log4j、slf4j默认等具体实现(实现任一即可)。
- 通过logback实现。
- 参考以下代码在pom文件中引入logback相关依赖(建议 1.3.1--1.3.8 版本)。
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.3.8</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.3.8</version> </dependency>
- 在resource目录下创建logback.xml,用于配置日志级别、格式、输出位置等,示例如下:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="DEBUG"> <appender-ref ref="CONSOLE" /> </root> </configuration>
- 参考以下代码在pom文件中引入logback相关依赖(建议 1.3.1--1.3.8 版本)。
- 通过log4j实现
- 参考以下代码在pom文件中引入log4j适配slf4j依赖(建议 2.0.7 版本)。
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>2.0.7</version> </dependency>
- 在resource目录下创建log4j.xml,用于配置日志级别、格式、输出位置等,示例如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" /> </layout> </appender> <root> org.slf4j <priority value="debug" /> <appender-ref ref="console" /> </root> </log4j:configuration>
- 参考以下代码在pom文件中引入log4j适配slf4j依赖(建议 2.0.7 版本)。
- 通过slf4j simple实现
- 参考以下代码在pom文件中引入依赖。
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.36</version> </dependency>
- 在resource目录下创建simplelogger.properties配置文件,示例如下:
org.slf4j.simpleLogger.defaultLogLevel=DEBUG org.slf4j.simpleLogger.log.org.apache.hc.client5=INFO org.slf4j.simpleLogger.showDateTime=true org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss org.slf4j.simpleLogger.showThreadName=true org.slf4j.simpleLogger.showLogName=true org.slf4j.simpleLogger.logFile=System.out #org.slf4j.simpleLogger.showShortLogName=false
- 参考以下代码在pom文件中引入依赖。
配置文件敏感信息加密配置
配置项中的密码等字段需要加密存储时,可以自定义实现解密方法。
- 实现解密类
// 配置类实现 public class CryptoCustom implements ConfigCryptor { @Override public String decrypt(String customTag, String encryptedValue) throws DecryptFailedException { // todo } }
- 配置项中指定解密类
# 配置项指定解密类 sdk.crypto.implementation.path=CryptoCustom
- 配置项中可正常配置密文,示例如下
# 配置项示例: sdk.llm.iam.iamPwd={Crypto.customTag}encryptedvalue