Преглед изворни кода

change chunk.status to chunk.available (#2646)

### What problem does this PR solve?

#1102

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
tags/v0.12.0
JobSmithManipulation пре 1 година
родитељ
комит
c103dd2746
No account linked to committer's email address
3 измењених фајлова са 21 додато и 13 уклоњено
  1. 2
    2
      api/apps/sdk/doc.py
  2. 2
    2
      sdk/python/ragflow/modules/chunk.py
  3. 17
    9
      sdk/python/test/t_document.py

+ 2
- 2
api/apps/sdk/doc.py Прегледај датотеку

d["content_sm_ltks"] = rag_tokenizer.fine_grained_tokenize(d["content_ltks"]) d["content_sm_ltks"] = rag_tokenizer.fine_grained_tokenize(d["content_ltks"])
d["important_kwd"] = req["important_keywords"] d["important_kwd"] = req["important_keywords"]
d["important_tks"] = rag_tokenizer.tokenize(" ".join(req["important_keywords"])) d["important_tks"] = rag_tokenizer.tokenize(" ".join(req["important_keywords"]))
if "available_int" in req:
d["available_int"] = req["available_int"]
if "available" in req:
d["available_int"] = req["available"]


try: try:
tenant_id = DocumentService.get_tenant_id(req["document_id"]) tenant_id = DocumentService.get_tenant_id(req["document_id"])

+ 2
- 2
sdk/python/ragflow/modules/chunk.py Прегледај датотеку

self.knowledgebase_id = None self.knowledgebase_id = None
self.document_name = "" self.document_name = ""
self.document_id = "" self.document_id = ""
self.status = "1"
self.available = 1
for k in list(res_dict.keys()): for k in list(res_dict.keys()):
if k not in self.__dict__: if k not in self.__dict__:
res_dict.pop(k) res_dict.pop(k)
"content": self.content, "content": self.content,
"important_keywords": self.important_keywords, "important_keywords": self.important_keywords,
"document_id": self.document_id, "document_id": self.document_id,
"status": self.status,
"available": self.available,
}) })
res = res.json() res = res.json()
if res.get("retmsg") == "success": if res.get("retmsg") == "success":

+ 17
- 9
sdk/python/test/t_document.py Прегледај датотеку

name3 = 'westworld.pdf' name3 = 'westworld.pdf'
path = 'test_data/westworld.pdf' path = 'test_data/westworld.pdf'



# Create a document in the dataset using the file path # Create a document in the dataset using the file path
rag.create_document(ds, name=name3, blob=open(path, "rb").read()) rag.create_document(ds, name=name3, blob=open(path, "rb").read())


# Retrieve the document by name # Retrieve the document by name
doc = rag.get_document(name="westworld.pdf") doc = rag.get_document(name="westworld.pdf")



# Initiate asynchronous parsing # Initiate asynchronous parsing
doc.async_parse() doc.async_parse()


def test_parse_document_and_chunk_list(self): def test_parse_document_and_chunk_list(self):
rag = RAGFlow(API_KEY, HOST_ADDRESS) rag = RAGFlow(API_KEY, HOST_ADDRESS)
ds = rag.create_dataset(name="God7") ds = rag.create_dataset(name="God7")
name='story.txt'
name = 'story.txt'
path = 'test_data/story.txt' path = 'test_data/story.txt'
# name = "Test Document rag.txt" # name = "Test Document rag.txt"
# blob = " Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps.Sample document content for rag test66. rag wonderful apple os documents apps.Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps." # blob = " Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps.Sample document content for rag test66. rag wonderful apple os documents apps.Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps. Sample document content for rag test66. rag wonderful apple os documents apps."
assert chunk is not None, "Chunk is None" assert chunk is not None, "Chunk is None"
assert isinstance(chunk, Chunk), "Chunk was not added to chunk list" assert isinstance(chunk, Chunk), "Chunk was not added to chunk list"
doc = rag.get_document(name='story.txt') doc = rag.get_document(name='story.txt')
chunk_count_before=doc.chunk_count
chunk_count_before = doc.chunk_count
chunk.delete() chunk.delete()
doc = rag.get_document(name='story.txt') doc = rag.get_document(name='story.txt')
assert doc.chunk_count == chunk_count_before-1, "Chunk was not deleted"
assert doc.chunk_count == chunk_count_before - 1, "Chunk was not deleted"
def test_update_chunk_content(self): def test_update_chunk_content(self):
rag = RAGFlow(API_KEY, HOST_ADDRESS) rag = RAGFlow(API_KEY, HOST_ADDRESS)
doc = rag.get_document(name='story.txt') doc = rag.get_document(name='story.txt')
assert chunk is not None, "Chunk is None" assert chunk is not None, "Chunk is None"
assert isinstance(chunk, Chunk), "Chunk was not added to chunk list" assert isinstance(chunk, Chunk), "Chunk was not added to chunk list"
chunk.content = "ragflow123" chunk.content = "ragflow123"
res=chunk.save()
assert res is True, f"Failed to update chunk, error: {res}"
res = chunk.save()
assert res is True, f"Failed to update chunk content, error: {res}"

def test_update_chunk_available(self):
rag = RAGFlow(API_KEY, HOST_ADDRESS)
doc = rag.get_document(name='story.txt')
chunk = doc.add_chunk(content="ragflow")
assert chunk is not None, "Chunk is None"
assert isinstance(chunk, Chunk), "Chunk was not added to chunk list"
chunk.available = 0
res = chunk.save()
assert res is True, f"Failed to update chunk status, error: {res}"

def test_retrieval_chunks(self): def test_retrieval_chunks(self):
rag = RAGFlow(API_KEY, HOST_ADDRESS) rag = RAGFlow(API_KEY, HOST_ADDRESS)
ds = rag.create_dataset(name="God8") ds = rag.create_dataset(name="God8")

Loading…
Откажи
Сачувај