应用平台 AppStage
应用平台 AppStage
- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- AppStage使用前准备
- AI原生应用引擎用户指南
- 开发中心用户指南
-
运维中心用户指南
- 运维中心简介
- 运维中心使用前准备
- 运维中心使用流程
- 进入运维中心
- 接入资源
- 部署应用
- 监控资源和应用
- 管理已纳管资源
- 管理运行时资源
- 管理工单
- 运营中心用户指南
- 最佳实践
- 开发指南
- API参考
- SDK参考
-
常见问题
- 权限管理
-
AI原生应用引擎
- 我创建的微调数据集会被其他用户调用去训练他们的大模型吗?
- 模型微调任务一直在等待中是什么原因?
- 大模型微调需要的数据有要求吗?
- AI原生应用引擎支持所有数据集进行数据标注吗?
- AI原生应用引擎中预置了哪些提示语?
- AI原生应用引擎训练好后的模型如何获取?
- 模型调测时,无法选择模型服务商API是什么原因?
- 我接入的模型需要满足什么要求才能在创建Agent时作为思考模型?
- Agent问答的时候报错“很抱歉,我的系统似乎遇到了一些故障问题,暂时无法为您提供服务”
- 自接入的模型在模型调测的时候报错是什么原因?
- 开源模型怎么部署?
- 平台有没有预置模型?
- 思考模型和问答模型的区别
- 工作流中知识库节点、LLM节点都需要配置实例,实例的API Key填什么?
- 工作流中工具节点的实例如何配置?
- 如何获取Agent发布时所需的API Key?
- 如何保证Agent每次问答都调用知识库?
- 工作流的返回是json格式,但是大模型会进行总结,如何以json格式直接输出?
- 如何在工作流中定制逻辑实现特定任务,比如时间格式转换、数组对象的push等
- 资产中心的工具怎么使用?
- Code代码节点的输入输出参数如何与其他节点进行交互和传递?
- Agent问答的时候没有回答
- 发布Agent的时候提示套餐校验失败
- 一站式创建Agent时如何取消选择默认模型,更换为其他模型
- 按照标题切分的时候,分段长度是什么意思?
- 工作流已启用,为什么在创建Agent时仍然无法选用?
- 如何通过调用Agent API将变量传递到工作流?
- 开发中心
- 运维中心部署服务
-
运维中心监控服务
- 如何查看EAP详细日志?
- 删除告警任务失败
- 告警后触发知识编排任务提示alert_type不存在
- 创建CES指标采集报错
- 如何卸载虚拟机上安装的filebeat?
-
异常检测Judge定时任务失败
- KeyError
- TypeError: not supported between instances of 'str' and 'float'
- TypeError("Cannot index by location index with a non-integer key")
- judge长时间处于SUBMIT状态直至失败
- fail to load model json
- judge日志无法查看,提示get request error
- judge日志大小1KB,且不刷新日志内容
- PSQLException: ERROR: invalid input syntax for type numeric
- PSQLException: ERROR: syntax error at or near
- too much null size
- judge_data_size(in):0
- ERROR - fail to load
- canceling statement due to user request
- 保存异常检测告警配置时报错
- 运维中心弹性资源服务
- 运维中心弹性网络服务
- 运维中心主机管理服务
- 运维中心微服务平台
-
运维中心负载均衡
-
SLB同步异常相关问题
- SSL_do_handshake() failed
- test nginx: nginx: [emerg] host not found in upstream "后端服务器名称" in /.../server...conf:17 nginx: .../nginx.conf test failed [FAILED
- no "ssl_certificate" is defined for the "listen ... ssl""
- no such file or directory......./ssl/dummy.pem
- test nginx: nginx: [alert] mmap(MAP_ANON|MAP_SHARED, 524288000) failed (12: Cannot allocate memory) nginx: [alert] munmap(FFFFFFFFFFFFFFFF, 524288000) failed
- duplicate value "error" in /opt/huawei/openresty/nginx/.../xxx.conf:40
- SLB同步检查不一致
- SLB一直同步,心跳异常
-
SLB部署失败相关问题
- FATAL Can't get local ip
- /etc/rc.d/init.d/functions: No such file or directory
- nginx is stopped
- will_upgrade\old_version:1.4.7
- Need to modify /etc/hosts,but no permission.
- system param fs.nr_open should not less than fs.file-max”or“system param net.ipv4.ip_local_port_range should >=30000
- some permission denied files in /opt/huawei/openresty/nginx/conf/
- Permission denied: '/opt/huawei/release/lf_test/SLB/
- install_slb_failed for /opt/huawei/openresty exists not for slb
- not all conf included in vhosts or slb_conf
- watchdog still running
- job 28e7241e42904334b failed
- [Service proxy.apply_sudo._wrapped_f]: fail to operator sudo,message: send request fail, status code: 400, error: None, message: illegal param\",\"status\":-2}
- some html not in /opt/huawei/openresty/nginx/html
- cannot access /opt/huawei/openresty/nginx/conf/ssl/sample/resty-auto-ssl-fallback.pem.Permission denined
- fail to operator sudo, message: send request fail, status code: 400, task: control sudo permission, status: failed
- some certificate not in /opt/huawei/openresty/nginx/conf/ssl
- crontab -l \n+ echo 'Permission denied crontab'
- 资源间绑定服务不一致
-
SLB同步异常相关问题
- 运维中心数据库治理
- 运维中心访问凭据管理服务
- 运营中心
- 管理控制台用户指南(即将下线)
- 业务控制台用户指南(即将下线)
-
运行时引擎用户指南(即将下线)
- AppStage运行时引擎简介
- AppStage运行时引擎使用前准备
- 进入AppStage运行时引擎
- 通过微服务平台管理微服务及相关资源
- 配置运行时引擎负载均衡
- 管理Cloud Map中的服务资源
- 配置运行时引擎数据库治理
- 配置访问凭据管理服务
- 文档下载
- 通用参考
本文导读
链接复制成功!
创建知识库并进行检索
操作场景
本文通过调用一系列知识中心的API,介绍从零开始创建知识库并进行检索的基本流程。API调用方法请参见如何调用API。
前提条件
准备一篇名为“问题.txt”的文档,文档内容为:
“什么是量子计算?它是一种利用量子力学原理进行信息处理的计算方式。====
什么是RAG?它是一种通过整合检索系统和生成模型的优势,来提升模型生成文本的质量和上下文相关性。====”
操作流程
步骤一:创建数据集
调用创建知识数据集接口创建数据集,示例如下:
{ "name": "测试", "description": "测试", "data_type": "TEXT", "tags": [ "对话问答", "文案生成" ], "ingestion_config": { "data_source": "FILE_UPLOAD", "file_types": [ "txt" ] }, "schedule_config": { "schedule_type": "ONCE" }, "preprocess_config": { "cleaning_methods": [ "invisible" ], "pdf_preprocess_type": "NO_PREPROCESS" }, "chunk_config": { "slicing_configs": { "txt": { "slicing_method": "sentence", "sentence_slicing_config": { "slicing_strategy": "equivalent", "spec_symbols": [ "====" ], "contain_separator": false, "chunk_size": 26, "chunk_overlap": 0 } } } }, "extraction_config": { "extraction_example": "今天天气如何?答:还不错哦。", "extraction_mode": "RULE_EXTRACTION", "rule_extraction_configs": [ { "extraction_rule": "SEPARATOR", "field_name": "question", "separator_extraction": { "contain_separator": false, "extraction_code": 2, "separator": "?" } }, { "extraction_rule": "TEMPLATE", "field_name": "answer", "template_extraction": { "contain_end": true, "contain_start": false, "end_with": "。", "extraction_code": 1, "start_with": "它是" } } ] }, "index_config": { "description": "索引配置", "long_text_solution": "TRUNCATE_MODE", "name": "索引配置", "rag_type": "VECTOR_RAG", "retrieval_configs": [ { "category": "FULL_CHUNK", "name": "chunk", "retrieval_return": false, "text_filter": false, "vector_retrieval": false }, { "category": "CHUNK_FRAGMENT", "name": "question", "retrieval_return": true, "text_filter": true, "vector_retrieval": true }, { "category": "CHUNK_FRAGMENT", "name": "answer", "retrieval_return": true, "text_filter": true, "vector_retrieval": false } ], "vector_model_service_key": "GPT-4" } }
在创建知识数据集中,有几个参数需要注意:
- ingestion_config内的data_source:表明数据来源,FILE_UPLOAD为文件上传,您需上传文件;OBS_INGESTTION表示OBS接入,您需添加OBS信息的配置。
- chunk_config:表示如何对文本进行切分。
- extraction_config:表明要对切片做提取操作,切片提取出的字段可以在索引配置中使用。
- index_config:索引配置,其中retrieval_configs配置完整切片内容,以及提取出的字段内容,在知识库检索时如何使用。
记录下接口返回的内容,该内容为知识数据集id。
{ "data" : "3f28e62-xxxxxxxx-a15be0d638a2" }
步骤二:查询知识数据集创建结果
调用查询知识数据集最新执行记录接口查询创建结果,该接口所需的知识数据集id为步骤一:创建数据集返回的内容。
根据返回结果响应:
{ "data" : { "id" : "djh28e62-3a81-4018-a48f-a15be0d63812", "result" : "SUCCESS", "progress" : 100.0, "run_time" : 27684, "start_time" : "2024-11-22T03:15:49.000+00:00", "end_time" : "2024-11-22T03:16:17.000+00:00", "log_detail" : "开始任务......结束任务" } }
- 如果result字段值为SUCCESS,则表明数据集创建成功。
- 如果result字段值为RUNNING,则表明数据集正在创建,请稍候。
- 如果result字段值为FALIURE,则表明数据集创建失败,请检查文件是否符合要求。
步骤三:查询数据集版本和索引信息
知识数据集创建成功后,调用查询知识数据集详情接口,查询数据集版本和索引信息,响应示例如下:
{ "data" : { "data_set_versions" : [ { "id" : "askdjh28e62-xxxxxxxxx-a15be0d63812", "version" : "v2024-11-21T11:36:55Z", "created_date" : "2024-11-11 19:36:57", "last_updated_date" : "2024-11-21 19:36:57" } ], "index_configs" : [ { "id" : "d3f28e62-xxxxxxx-a15be0d638a2", "name" : "索引配置名称", "description" : "索引配置", "data_set_id" : "d3f28e62-3a81-4018-a48f-a15be0d638a2", "vector_model_service_key" : "service_key", "index_vector_config" : { "long_text_solution" : "TRUNCATE_MODE" } } ] } }
保存创建知识库对应的数据集版本id、版本号、索引配置id。数据集版本和索引可能有多个,可以任意组合。
步骤四:创建知识库
调用创建知识库接口创建知识库。根据保存的数据集id,数据集版本号,索引配置id,构建请求体,创建知识库即可。请求体如下:
{ "name": "知识库名称", "description": "知识库描述", "retrieval_status": "ENABLE", "rag_type": "VECTOR_RAG", "retrieval_config": { "retrieval_modes": [ "SEMANTIC_RETRIEVAL", "FULL_TEXT_RETRIEVAL" ], "retrieval_hybrid_mode": "RRF" }, "knowledge_data_sets": [ { "data_set_id": "djh28e62-xxxxxxxxx-a15be0d63812", "data_set_version": "v2024-11-21T11:36:55Z", "index_config_id": "d3f28e62-xxxxxxx-a15be0d638a2" } ] }
注意:retrieval_status字段设置知识库是否启用检索,如果启用,则检索前不需要再调用修改知识库召回状态接口启用知识库。
将创建接口响应内容保存起来,该内容为知识库id:
{ "data" : "3f28e62-xxxxxxxx-a15be0d638a2" }
步骤五:查询知识库创建结果
调用查询知识库最新执行记录接口查询创建结果。该接口所需的知识库id为步骤四:创建知识库返回的内容。
返回结果响应如下:
{ "data" : { "id" : "djh28e62-3a81-4018-a48f-a15be0d63812", "result" : "SUCCESS", "progress" : 100.0, "run_time" : 27684, "start_time" : "2024-11-22T03:15:49.000+00:00", "end_time" : "2024-11-22T03:16:17.000+00:00", "log_detail" : "开始任务......结束任务" } }
- 如果result字段值为SUCCESS,则表明知识库创建成功。
- 如果result字段值为RUNNING,则表明知识库正在创建,请稍候。
- 如果result字段值为FALIURE,则表明知识库创建失败,请检查文件是否符合要求。
步骤六:启用或停用知识库召回功能
调用修改知识库召回状态接口启用或停用知识库召回功能。
若创建知识库时已经启用知识库,则不需要执行此步骤。否则需启用知识库,请求体为:
ENABLE
若响应如下,则启用成功。
{ "data" : true }
步骤七:检索知识库数据
调用检索知识库数据接口检索知识库(知识库召回状态需为启用),请求体示例如下:
{ "keyword" : "什么是", "similarity_min" : "0.78", "limit" : 10, "filter" : { "group_type" : "AND", "expressions" : [ { "field" : "metadata.answer", "field_type" : "STRING", "operator" : "EQUAL", "values" : [ "一种利用量子力学原理进行信息处理的计算方式。" ] } ] }, "order_by" : { "order_items" : [ { "field" : "metadata.order", "field_type" : "INT", "order_type" : "DESC" } ] }, "data_sets" : [ { "data_set_id" : "a31ed909-xxxx-xxxx-xxxx-10958c90b3f7" } ] }
根据索引配置,返回结果为:
{ "data" : [ { "id" : "812857ef-xxxx-xxxx-xxxx-24ba9fd5e95c", "document" : "什么是量子计算?它是一种利用量子力学原理进行信息处理的计算方式。", "chunk" : "什么是量子计算?它是一种利用量子力学原理进行信息处理的计算方式。", "chunk_fragments" : { "question" : "什么是量子计算。", "answer" : "一种利用量子力学原理进行信息处理的计算方式" }, "similarity" : 0.87, "metadata" : { "order" : 10, "file_name" : "问题.txt", "path" : "问题.txt ", "question" : "什么是量子计算。", "answer" : "一种利用量子力学原理进行信息处理的计算方式。" }, "download_addresses" : { "xxx.png" : "https://xxxx" }, "download_address" : null, "data_set_id" : "3967c49d-xxxx-xxxx-xxxx-5eda056a1f1b" } ] }
响应参数解释:
- document:表示向量化检索内容,索引配置时选择某个字段为向量化字段,检索命中时返回该字段内容,即vector_retrieval为true。
- chunk:表示完整切片,索引配置时配置chunk作为附加字段返回时,该字段有内容,即索引配置中category为FULL_CHUNK,retrieval_return为true。
- chunk_fragments:表示切片提取字段,索引配置时配置所提取的字段作为附加字段返回时,该字段有内容,即索引配置中category为CHUNK_FRAGMENT,retrieval_return为true。
- metadata:默认包含order、file_name、path三个字段,若索引配置时配置所提取的字段作为文本过滤字段时,即索引配置中category为CHUNK_FRAGMENT,text_filter为true时,metadata下会新增该字段及其内容。
父主题: 应用示例