在没有专属知识库时,大模型无法准确回答“百炼手机”的问题,因为这是一个虚构的私有知识。
有专属知识库的应用
引入专有知识库后,大模型就能准确回答“百炼手机”方面的问题。
支持从本地上传(非结构化或结构化数据)、从阿里云对象存储OSS(非结构化数据)导入、从阿里云数据库RDS导入三种方式(暂不支持阿里云以外的数据源,如GitHub、Notion等)。
知识库功能支持下列预置模型:
知识库功能支持基于下列模型调优后的自定义模型:
从左侧的数据表管理列表中选择相应的数据表,然后单击导入数据。
以下情况,建议选择结构化数据:
是否参与检索:开启后表示该元数据字段和值将和文本切片的内容一起共同参与知识库检索。
是否参与模型回复:开启后表示该元数据字段和值将和文本切片的内容一起共同参与大模型的回答生成过程。
Excel文档表头是否支持拼装(可选)
建议仅在导入文档均为xlsx、xls格式且含表头时开启,否则无需开启。
文档切分chunk
选择智能切分(推荐)或自定义切分。
命中测试用于评估知识库在给定的相似度阈值下语义检索的表现,例如检查文本切片是否被正确召回,从而确定是否需要进一步调整知识库的相似度阈值,以确保后续大模型能够从知识库中获得有效的知识输入。要进行命中测试,请展开命中测试(可选)并按步骤操作。
命中测试(可选)
命中测试建议步骤
RerankMinScore字段指定相似度阈值。该值用于筛选召回的文本切片,即只有和用户问题相似度超过此数值(默认为0.2)的文本切片才会被召回。增加此数值会降低召回的文本切片数量。
下图是一个基于知识库的问答类智能体应用示例。此类应用有效解决了通用大模型难以处理私有知识和获取最新信息的问题。适用于个人助理、客户服务、技术支持等领域。
检索配置修改后仅对当前应用生效。
参数名称
参数说明
召回片段数
知识库拼装最大长度
查看业务空间下的知识库列表,搜索某个知识库,以及查看指定知识库的基本信息、配置和内容。
创建知识库后,您可自定义修改其基本信息和部分配置。编辑知识库暂不支持API操作。
更新知识库包括向知识库补充私有知识、引入最新信息和移除过时信息。定期更新有利于维持知识库的准确性和时效性。当知识库内容不再反映最新情况或存在错误时,应尽快进行更新。
您在使用上述API更新知识库时,可能遇到下表所示的问题。
问题
说明
更新知识库时,是否需要按照特定顺序调用上述API接口?
是否需要按顺序调用API取决于您的业务需求和更新策略。以下是更新知识库时可能采用的一个API调用顺序示例:
是否需要调用该接口来删除旧的文档,这取决于您具体的更新策略。如果您需要确保知识库中的文档始终是最新的,并且旧知识不再适用,那么推荐执行删除操作,以避免旧的知识被错误地检索。
百炼是否支持上述追加和删除等API操作日志的记录和查看?
百炼知识库功能暂未集成API日志记录和查询功能。鉴于此,需要在您的应用程序中自行集成日志机制和校验逻辑,以确保知识的完整性。
如何设置RDS实例的白名单?
设置RDS实例的白名单,具体操作步骤如下:
长文本大模型(Long-ContextLLM)和RAG怎么选?
百炼是否支持自动更新知识库?
如何构建图片索引?
构建图片索引需两步:
我的知识库是否私有?其他公司或用户能否访问它?
您的知识库仅供您当前的业务空间使用,不会对外公开。
百炼是否会使用我账号下的知识库来回答其他用户的问题?
百炼不会使用您账号下的知识库来回答其他用户的问题。
如果只能上传非结构化文档,如何组织文档内容有助于知识库检索?
建议使用易于文本解析的文档格式(如txt、md格式)进行导入;文档内容上建议明确标题和段落,并利用列表和编号整理信息突出关键词和概念。
百炼是否支持将知识库下载到本地?
暂不支持将知识库下载到本地。
数据管理中已导入知识库的文档/数据表是否可以删除?
知识库是否计费?
步骤
计费情况
导入数据
不计费。
创建知识库
测试知识库
引用知识库
调用应用时,从知识库召回的文本切片会增加大模型输入Token数量,从而产生费用。
管理与维护知识库
如何检查文本切片质量?
文本切片过短
文本切片过长
明显的语义截断
切分chunk过短导致语义缺失,无法匹配。
切分chunk过长导致引入语义噪音,降低匹配精度。
切分chunk出现了强制性的语义截断,导致召回时缺失内容。
当用户对RDS源表进行DDL操作时,比如DROPTABLE、RENAMETABLE、TRUNCATETABLE、ADDCOLUMN、DROPCOLUMN,百炼会如何处理?
如何手动查询AnalyticDBforPostgreSQL中与Prompt相似的文本?
基于上图,以下是详细操作步骤。
如何选择取决于您对哪个SDK更为熟悉。以下是使用DashScopeSDK调用text-embedding-v2,将文本Prompt“百炼手机X1”转换为向量的代码示例。
request_id=a4ddd876-5003-971b-abca-81da4cxxxxxxoutput={'embeddings':[{'embedding':[0.012356398553941625,0.029741432266407613,-0.0027946300120853308,...],'text_index':0}]}usage={'total_tokens':4}异常响应request_id=dea1ba20-68fe-9552-a1be-a5fa81xxxxxxcode=401message=InvalidAPI-keyprovided.响应中embedding字段的值即是根据Prompt生成的向量。
非结构化知识库ADB-PG示例
每个非结构化知识库(使用ADB-PG作为向量数据库)在创建时,会在表空间knowledgebase下的ns_cloud_index数据库中创建两张表,分别为cloud_index_adb_xxxxx_prod和cloud_index_adb_xxxxx_doc_prod。
结构化知识库ADB-PG示例
每个结构化知识库(使用ADB-PG作为向量数据库)在创建时,会在表空间knowledgebase下的ns_cloud_index数据库中创建表cloud_index_adb_xxxxx_prod。
欧氏距离(平方值)越小,表示两个向量之间的相似度越高。
SELECTid,l2_squared_distance(vector,array[0.012356398553941625,0.029741432266407613,-0.0027946300120853308,...]::float4[])ASdistanceFROMcloud_index_adb_xxxxx_prodORDERBYvector<->array[0.012356398553941625,0.029741432266407613,-0.0027946300120853308,...]::float4[]LIMIT3;返回示例如下,其中id为llm-x的文本切片的向量与输入Prompt向量的欧氏距离最小。
id|distance------+--------------------llm-x|0.787400245666503906llm-y|1.07475090026855469llm-z|1.42198872566223145(3rows)获取点积距离(在归一化时,点积距离等于余弦相似度)点积距离越大,表示两个向量之间的相似度越高。
SELECTid,dp_distance(vector,array[0.012356398553941625,0.029741432266407613,-0.0027946300120853308,...]::float4[])ASsimilarityFROMcloud_index_adb_xxxxx_prodORDERBYvector<->array[0.012356398553941625,0.029741432266407613,-0.0027946300120853308,...]::float4[]LIMIT3;返回示例如下,其中id为llm-x的文本切片的向量与输入Prompt向量的余弦相似度最大。
SELECTid,contentFROMcloud_index_adb_xxxxx_prodwhereid='llm-x';返回示例如下。
id|content-------+-------------------llm-x|欢迎来到未来科技的前沿,探索我们精心打造的智能手机系列,每一款都是为了满足您对科技生活的无限遐想而生。百炼X1-畅享极致视界:搭载6.7英寸1440x3200像素超清屏幕,搭配120Hz刷新率,流畅视觉体验跃然眼前。256GB海量存储空间与12GBRAM强强联合,无论是大型游戏还是多任务处理,都能轻松应对。5000mAh电池长续航,加上超感光四摄系统,记录生活每一刻精彩。参考售价:4599-4999。(1rows)场景教程本文仅介绍了百炼的知识库功能,您接下来可以尝试通过百炼快速构建一个在线知识库问答应用,以便全天候(7×24)响应用户咨询,提升用户体验、增强业务竞争力。以下是一些场景案例: