Files
ragflow_api_test/src/add_chunk.py

79 lines
2.4 KiB
Python

from tkinter import Tk, StringVar, Label, OptionMenu, Button, filedialog
from ragflow_sdk import RAGFlow
base_url = "http://127.0.0.1"
api_key = "ragflow-MyMjM2ODE2NThlMTExZjBiMzJlNzY5Mj"
rag_object = RAGFlow(api_key=api_key, base_url=base_url)
def add_chunk_to_document():
try:
dataset_name = dataset_var.get()
document_name = document_var.get()
if not dataset_name or not document_name:
print("请选择数据集和文档!")
return
file_path = filedialog.askopenfilename(filetypes=[("Text files", "*.txt")])
if not file_path:
print("未选择文件")
return
with open(file_path, 'r', encoding='utf-8') as file:
content = file.read()
datasets = rag_object.list_datasets(name=dataset_name)
if not datasets:
print(f"数据集 '{dataset_name}' 不存在!")
return
dataset = datasets[0]
documents = dataset.list_documents(name=document_name)
if not documents:
print(f"文档 '{document_name}' 不存在!")
return
document = documents[0]
content="test chunk"
chunk = document.add_chunk(content=content)
print(f"Chunk添加成功! ID: {chunk.id}")
except Exception as e:
print(f"添加chunk时发生错误: {e}")
import traceback
traceback.print_exc()
def update_documents(*args):
dataset_name = dataset_var.get()
dataset = rag_object.list_datasets(name=dataset_name)
dataset = dataset[0]
documents = dataset.list_documents()
document_menu['menu'].delete(0, 'end')
for doc in documents:
document_menu['menu'].add_command(label=doc.name, command=lambda value=doc.name: document_var.set(value))
root = Tk()
root.title("Add Chunk to Document")
# 初始化变量时设置默认值
datasets = rag_object.list_datasets()
dataset_names = [ds.name for ds in datasets]
dataset_var = StringVar(root)
dataset_var.set(dataset_names[0] if dataset_names else "")
document_var = StringVar(root)
document_var.set("")
dataset_menu = OptionMenu(root, dataset_var, *dataset_names, command=update_documents)
dataset_menu.pack()
document_menu = OptionMenu(root, document_var, "")
document_menu.pack()
add_chunk_button = Button(root, text="Add Chunk", command=add_chunk_to_document)
add_chunk_button.pack()
root.mainloop()