这是一个用于管理RAGFlow数据集的命令行工具,支持创建、更新、删除、查询和列出数据集。
- 列出所有数据集
- 获取数据集详细信息
- 创建新数据集
- 更新现有数据集
- 删除数据集
- 支持多种分块方法(naive, qa, table, knowledge_graph等)
- 支持自定义解析器配置
- 支持从JSON文件加载配置
确保已安装Python 3.6+和requests库:
pip install requests
python ragflow_dataset_manager.py list
python ragflow_dataset_manager.py get --dataset_id <数据集ID>
基本用法:
python ragflow_dataset_manager.py create --name "数据集名称" --embedding_model "嵌入模型名称" --chunk_method naive --use_default_config
使用自定义配置:
python ragflow_dataset_manager.py create --name "数据集名称" --embedding_model "嵌入模型名称" --chunk_method naive --chunk_token_num 256 --auto_keywords 1
使用配置文件:
python ragflow_dataset_manager.py create --name "数据集名称" --embedding_model "嵌入模型名称" --chunk_method naive --config_file config.json
创建知识图谱数据集:
python ragflow_dataset_manager.py create --name "知识图谱数据集" --embedding_model "嵌入模型名称" --chunk_method knowledge_graph --entity_types "人物,地点,事件" --graphrag_method custom
基本用法:
python ragflow_dataset_manager.py update --dataset_id <数据集ID> --name "新名称" --description "新描述"
更新分块方法:
python ragflow_dataset_manager.py update --dataset_id <数据集ID> --chunk_method qa --use_default_config
使用配置文件更新:
python ragflow_dataset_manager.py update --dataset_id <数据集ID> --config_file config.json --chunk_method qa
python ragflow_dataset_manager.py delete --dataset_id <数据集ID> --confirm
配置文件应为JSON格式,例如:
{
"chunk_token_num": 512,
"delimiter": "\\n!?;。;!?",
"auto_keywords": 1
}
对于知识图谱数据集,可以使用如下配置:
{
"chunk_token_num": 512,
"delimiter": "\\n!?;。;!?",
"graphrag": {
"method": "custom",
"resolution": true,
"community": true,
"entity_types": ["人物", "地点", "事件", "时间"],
"use_graphrag": true
},
"auto_keywords": 1,
"auto_questions": 1,
"layout_recognize": "DeepDOC"
}
以下是一个针对小说文本的详细知识图谱配置示例,包含了丰富的实体类型:
{
"chunk_token_num": 512,
"delimiter": "\\n!?;。;!?",
"graphrag": {
"method": "custom",
"resolution": true,
"community": true,
"entity_types": [
"人物名称", "人物性别", "人物年龄", "人物身份", "人物外貌", "人物职业", "人物关系",
"人物职务职称", "时代背景", "具体年代", "具体日期", "季节时节", "关键时刻", "地理位置",
"具体地点", "场景环境", "建筑场所", "自然环境", "天气气候", "事件名称", "事件时间",
"事件地点", "事件顺序", "事件起因", "事件过程", "事件结果", "事件影响", "历史事件",
"故事主题", "故事类型", "叙事视角", "故事线索", "章节信息", "情节走向", "情节转折",
"矛盾冲突", "悬念设置", "高潮情节", "结局类型", "关键道具", "场景物品", "标志性物品",
"服饰装扮", "生活用品", "饮食物品", "组织机构", "团体势力", "家族宗派", "帮派门派",
"性格特征", "心理变化", "行为动机", "语言特点", "成长轨迹", "个人魅力", "性格缺陷",
"处世态度", "生活哲学", "教育背景", "语言方言", "社会风貌", "文化习俗", "民族特色",
"地域文化", "声音描写", "气味描写", "光线描写", "情绪氛围", "权力关系", "阶层差异",
"文化冲突", "家庭关系", "亲情关系", "友情表现", "爱情描写", "情感类型", "价值观念",
"道德伦理", "社会议题", "人性探讨", "理想追求", "命运抉择", "身份认同", "信仰立场",
"生活状态", "心理创伤", "成功经历", "失败经历", "思想转变", "重要抉择"
],
"use_graphrag": true
},
"auto_keywords": 1,
"auto_questions": 1,
"layout_recognize": "DeepDOC"
}
这个配置适用于小说文本分析,能够识别和提取各种人物、时间、地点、事件、情节等实体,构建丰富的知识图谱。
--api_url
: API URL,默认为预设值--api_key
: API Key,默认为预设值
--name
: 数据集名称--embedding_model
: 嵌入模型名称--chunk_method
: 分块方法,可选值:naive, qa, table, knowledge_graph--parser_config
: 解析器配置(JSON格式)--config_file
: 从JSON文件加载解析器配置--use_default_config
: 使用默认配置--description
: 数据集描述--permission
: 数据集权限,可选值:me(仅自己), team(团队)--language
: 数据集语言,可选值:English, Chinese--similarity_threshold
: 相似度阈值(0.0-1.0)--pagerank
: 页面排名权重(0.0-1.0)--vector_similarity_weight
: 向量相似度权重(0.0-1.0)
--chunk_token_num
: 分块令牌数量--delimiter
: 分隔符--layout_recognize
: 布局识别方式,可选值:DeepDOC, None--html4excel
: 是否使用HTML处理Excel--auto_questions
: 是否自动生成问题,可选值:0(否), 1(是)--auto_keywords
: 是否自动生成关键词,可选值:0(否), 1(是)
--graphrag_method
: 知识图谱方法,可选值:general, custom--graphrag_resolution
: 是否启用解析--graphrag_community
: 是否启用社区--entity_types
: 实体类型列表,用逗号分隔
知识图谱实体类型可以根据不同领域和需求进行定制,以下是常见的分类:
- 人物相关:人物名称、人物性别、人物年龄、人物身份、人物外貌、人物职业、人物关系、人物职务职称等
- 时间相关:时代背景、具体年代、具体日期、季节时节、关键时刻等
- 地点相关:地理位置、具体地点、场景环境、建筑场所、自然环境、天气气候等
- 事件相关:事件名称、事件时间、事件地点、事件顺序、事件起因、事件过程、事件结果、事件影响、历史事件等
- 故事相关:故事主题、故事类型、叙事视角、故事线索、章节信息、情节走向、情节转折、矛盾冲突、悬念设置、高潮情节、结局类型等
- 物品相关:关键道具、场景物品、标志性物品、服饰装扮、生活用品、饮食物品等
- 组织相关:组织机构、团体势力、家族宗派、帮派门派等
- 描述相关:性格特征、心理变化、行为动机、语言特点、成长轨迹、个人魅力、性格缺陷、处世态度、生活哲学、教育背景、语言方言等
- 社会文化:社会风貌、文化习俗、民族特色、地域文化等
- 感官描写:声音描写、气味描写、光线描写、情绪氛围等
- 关系互动:权力关系、阶层差异、文化冲突、家庭关系、亲情关系、友情表现、爱情描写、情感类型等
- 思想观念:价值观念、道德伦理、社会议题、人性探讨、理想追求、命运抉择、身份认同、信仰立场等
- 经历状态:生活状态、心理创伤、成功经历、失败经历、思想转变、重要抉择等
使用--use_default_config
参数时,会根据选择的分块方法自动生成相应的解析器配置:
{
"chunk_token_num": 128,
"delimiter": "\\n!?;。;!?",
"html4excel": false,
"layout_recognize": "DeepDOC",
"raptor": {"use_raptor": false}
}
{
"chunk_token_num": 128,
"delimiter": "\\n!?;。;!?",
"auto_questions": 1,
"auto_keywords": 0,
"layout_recognize": "DeepDOC"
}
{
"chunk_token_num": 128,
"delimiter": "\\n!?;。;!?",
"html4excel": true,
"layout_recognize": "DeepDOC"
}
{
"chunk_token_num": 128,
"delimiter": "\\n!?;。;!?",
"graphrag": {
"use_graphrag": true,
"method": "general",
"resolution": true,
"community": true,
"entity_types": [
"人物", "神仙", "猴类", "凡人",
"地点", "大洲", "国家", "山川", "洞府",
"物品", "自然物品", "食物",
"事件", "自然现象", "猴类活动", "神仙活动",
"概念", "时间概念", "宗教概念"
]
}
}
{
"chunk_token_num": 256,
"delimiter": "\\n!?;。;!?",
"layout_recognize": "DeepDOC",
"auto_keywords": 1
}
{
"chunk_token_num": 512,
"delimiter": "\\n!?;。;!?",
"layout_recognize": "DeepDOC",
"auto_keywords": 1
}
{
"chunk_token_num": 256,
"delimiter": "\\n!?;。;!?",
"layout_recognize": "DeepDOC",
"auto_keywords": 1
}
{
"chunk_token_num": 128,
"delimiter": "\\n!?;。;!?",
"layout_recognize": "DeepDOC",
"html4excel": true
}
{
"chunk_token_num": 128,
"delimiter": "\\n!?;。;!?",
"layout_recognize": "DeepDOC"
}
{
"chunk_token_num": 1024,
"delimiter": "\\n!?;。;!?"
}
{
"chunk_token_num": 256,
"delimiter": "\\n!?;。;!?",
"layout_recognize": "DeepDOC"
}
{
"chunk_token_num": 256,
"delimiter": "\\n!?;。;!?",
"layout_recognize": "DeepDOC"
}
创建一个使用默认配置的中文数据集:
python ragflow_dataset_manager.py create --name "测试数据集" --embedding_model "BAAI/bge-large-zh-v1.5" --chunk_method naive --use_default_config --description "这是一个测试数据集" --permission team --language Chinese
创建一个问答切片数据集:
python ragflow_dataset_manager.py create --name "问答数据集" --embedding_model "BAAI/bge-large-zh-v1.5" --chunk_method qa --use_default_config --description "这是一个问答数据集" --permission team --language Chinese
创建一个知识图谱数据集:
python ragflow_dataset_manager.py create --name "知识图谱数据集" --embedding_model "BAAI/bge-large-zh-v1.5" --chunk_method knowledge_graph --use_default_config --description "这是一个知识图谱数据集" --permission team --language Chinese
创建一个自定义配置的数据集:
python ragflow_dataset_manager.py create --name "自定义数据集" --embedding_model "BAAI/bge-large-zh-v1.5" --chunk_method naive --chunk_token_num 256 --auto_keywords 1 --description "这是一个自定义配置的数据集" --permission team --language Chinese
创建一个自定义知识图谱数据集:
python ragflow_dataset_manager.py create --name "自定义知识图谱" --embedding_model "BAAI/bge-large-zh-v1.5" --chunk_method knowledge_graph --entity_types "人物,地点,事件,时间" --graphrag_method custom --description "这是一个自定义知识图谱数据集" --permission team --language Chinese
使用配置文件创建详细的知识图谱数据集:
python ragflow_dataset_manager.py create --name "小说知识图谱" --embedding_model "BAAI/bge-large-zh-v1.5" --chunk_method knowledge_graph --config_file configs/knowledge_graph_config.json
更新数据集名称:
python ragflow_dataset_manager.py update --dataset_id <数据集ID> --name "新数据集名称"
更新数据集描述:
python ragflow_dataset_manager.py update --dataset_id <数据集ID> --description "新的数据集描述"
更新数据集语言:
python ragflow_dataset_manager.py update --dataset_id <数据集ID> --language Chinese
更新相似度阈值:
python ragflow_dataset_manager.py update --dataset_id <数据集ID> --similarity_threshold 0.3
更新页面排名权重:
python ragflow_dataset_manager.py update --dataset_id <数据集ID> --pagerank 0.5
更新向量相似度权重:
python ragflow_dataset_manager.py update --dataset_id <数据集ID> --vector_similarity_weight 0.7
更新分块方法:
python ragflow_dataset_manager.py update --dataset_id <数据集ID> --chunk_method manual --use_default_config
更新权限:
python ragflow_dataset_manager.py update --dataset_id <数据集ID> --permission team
更新特定分块配置:
python ragflow_dataset_manager.py update --dataset_id <数据集ID> --chunk_token_num 512 --auto_questions 1
使用配置文件更新知识图谱数据集:
python ragflow_dataset_manager.py update --dataset_id <数据集ID> --config_file configs/knowledge_graph_config.json --chunk_method knowledge_graph
更新知识图谱实体类型:
python ragflow_dataset_manager.py update --dataset_id <数据集ID> --entity_types "人物名称,人物性别,人物年龄,地理位置,具体地点,事件名称,事件时间,事件地点"
- 默认API地址为
http://192.168.3.2:9380
,可通过--api_url
参数修改 - 默认API密钥为
ragflow-I0ZTg0YjljMDE0NjExZjA4ZWM4MDI0Mm
,可通过--api_key
参数修改 - 创建或更新数据集时,如果指定了
--use_default_config
参数,将根据分块方法自动生成默认的解析器配置 - 删除数据集操作不可逆,请谨慎操作
- 自定义parser_config时,请确保JSON格式正确,在命令行中使用时需要正确转义