通义灵码企业检索增强-企业知识问答查询场景DEMO
第三个是企业知识的检索场景,首先给大家演示的是我们用oss访问的一个凭证,我们觉得它不合理,现在对它进行一个修改。首先用workspace本地工程问答,我们去库里面寻找一下今天的OSS访问凭证的代码是在哪儿写的,为AK Demo Test,
用workspace进行全库的查找,它顺利的找到了这份代码,然后接下来问企业知识库,企业里面推荐的OSS凭证管理的方式有哪些?首先要问一些技术方案,我们通过企业内部的知识库检索,大模型已经帮我推荐出了12345678,这八个文档中列出来标准的OSS访问凭证管理的方法:
workspace 0SS访问凭证的实现代码在哪个文件中? OSS访问凭证的实现代码可以在以下文件中找到: 1.AkDemoTest.java 该文件中包含了获取Oss访问凭证的示例代码,以下是代码片段: java public class AkDemoTest { public static void main(String[] args) thr //Endpoint以华东(核州)为例,其它Region String endpoint="https://0ss-cn-hang //从环境变量中获取访问凭证。运行本代码示例之 EnvironnentVariableCredent1alsProVider //填写Bucket名称,例如examplebucket. String bucketName."examplebucket”; //填写0bject完整路径,完整路径中不能包含Bu String objectName."exampledir/examp1 //创建BROsSClient实例。 0SS ossClient =new 0SSClientBui1der() try( /填写字符串。 String content ="Hel1o 0ss,你好世 //创建Put0bjectRequest对象 Put0bjectRequest put0bjectRequest
OSS访问凭证还有那些实现方式? OSS访问凭证的其他实现方式包括: 1.使用自动轮转的AK: 适用于需要长期访间OSs但面临AK泄露风险的环境。 通过ClientKey初始化凭证提供者,KMS服务可以自动定期轮转AK,降低泄漏风险。 相关文档提供了添加依赖项以及创建配置文件socrotsmanagor.properties 的方法。 2.使用STS Token: 适用于需要临时访问OSS的应用程序。 使用通过STS服务获取的临时身份凭证(Access Key ID、 Access Key Secret和Security Token)初始化凭证提供 者。 3.使用RAMRoleARN: 适用于需要授权访间0SS的应用程序,例如跨阿里云账号访问。 通过指定RAM角色的ARN,凭证工具会自动快取STS Token并在会话到期前刷新。 可以通过为policy 赋值来限制权限。 4.使用ECSRAMRole: 适用于部署在阿里云ECs实例、ECI实例或容器服务 Kubernetes版的Worker节点中的应用程序。 不需要提供AK或STS Token, 凭证工具会自动获取并刷新 STS Token。 6.使用函数计算上下文中的credentials: 适用于部奢在阿里云函数计算中的应用程序。 凭证在函数执行周期内有效,无需刷新。 7.使用CredentialsURI: 适用于需要通过外部系统获取访问凭证的应用程序。 凭证具会自动获取并刷新STS Token。 8.自定义访间凭证: 当以上方式均不满足需求时,可以自定义凭证获取方式。 实现细节需自行设计。 每种方式都有其适用场景和特点,可以根据具体需求选择合适的凭证提供者。
接下来开始写代码,只需要圈选右侧的这块代码,然后问知识库,能不能根据我们的推荐使用自动轮转AK的方式帮我把这段代码改掉,它的原理就是在企业知识库里面获取到了标准化的技术方案以及OSS访问控制的这一段代码的标准化写法,然后针对它的代码进行编写,并且在里面推荐出一个标准化的程序逻辑以及它的一些二方库三方库的引用以及它的配置文件应该怎么写。
要将代码改为使用自动轮转的AK方式,你需要按照以下步骤修改 1.添加必要的依赖项。 2.创建配置文件secretsmanager properties。 3.使ClientKey 初始化凭证提供者。 下面是修改后的代码示例: java import com.aliyun.0ss.0SS; Import com.aliyun.0ss.05SCLientBui1der; Import com.aliyun.0ss.comnon.auth.CredentiatsPro 1mport com.aliyuncs.kms.secretsmanager.client.Se import com.aliyuncs.kmsS.secretsmanager.client.Se Import com.aUiyuncs.kms.SecretSmanager.client.ex import com.aliyunCs.kms.secretsmanager.client.mo import org.codehaus.jettison.json..50NException; import org.codehaus.jettison.json.J5ON0bject; Public class AutoRotatingAKDemoTest{ public static void main(String1l args)throw //Endpoint以华东(杭州)为例。其它Region String endpoint .“https://0ss-Cn-hangzh //创建SecreCacheClient实例 final SecretCacheCtient client = SecretC //创建mKcredentialsProvider实例 CredentialsProVider credentiatsProvider: @0verr1de public void setCredentials(credentia //无需实现此方法 }
通过这一个小的demo给大家演示了如何通过我们的企业知识库再加上开发任务的目标,顺利的去完成一个小功能的编写,可以看到非常顺利的可以让我们企业里面的整个OSS的AK管理方式统一化一。