liuhua liuhua commited on
Commit
1061738
·
1 Parent(s): dc07a4b

Add test for document (#3548)

Browse files

### What problem does this PR solve?

Add test for document

### Type of change

- [x] New Feature (non-breaking change which adds functionality)

Co-authored-by: liuhua <[email protected]>

api/apps/sdk/doc.py CHANGED
@@ -115,6 +115,7 @@ def upload(dataset_id, tenant_id):
115
  return get_result(
116
  message="No file selected!", code=settings.RetCode.ARGUMENT_ERROR
117
  )
 
118
  # total size
119
  total_size = 0
120
  for file_obj in file_objs:
@@ -127,6 +128,7 @@ def upload(dataset_id, tenant_id):
127
  message=f"Total file size exceeds 10MB limit! ({total_size / (1024 * 1024):.2f} MB)",
128
  code=settings.RetCode.ARGUMENT_ERROR,
129
  )
 
130
  e, kb = KnowledgebaseService.get_by_id(dataset_id)
131
  if not e:
132
  raise LookupError(f"Can't find the dataset with ID {dataset_id}!")
 
115
  return get_result(
116
  message="No file selected!", code=settings.RetCode.ARGUMENT_ERROR
117
  )
118
+ '''
119
  # total size
120
  total_size = 0
121
  for file_obj in file_objs:
 
128
  message=f"Total file size exceeds 10MB limit! ({total_size / (1024 * 1024):.2f} MB)",
129
  code=settings.RetCode.ARGUMENT_ERROR,
130
  )
131
+ '''
132
  e, kb = KnowledgebaseService.get_by_id(dataset_id)
133
  if not e:
134
  raise LookupError(f"Can't find the dataset with ID {dataset_id}!")
example/http/{simple_example.sh → dataset_example.sh} RENAMED
File without changes
example/sdk/{simple_example.py → dataset_example.py} RENAMED
File without changes
sdk/python/test/t_document.py CHANGED
@@ -1,6 +1,6 @@
1
- from ragflow_sdk import RAGFlow, DataSet, Document, Chunk
2
  from common import HOST_ADDRESS
3
-
4
 
5
  def test_upload_document_with_success(get_api_key_fixture):
6
  API_KEY = get_api_key_fixture
@@ -48,7 +48,6 @@ def test_list_documents_in_dataset_with_success(get_api_key_fixture):
48
  ds.list_documents(keywords="test", page=1, page_size=12)
49
 
50
 
51
-
52
  def test_delete_documents_in_dataset_with_success(get_api_key_fixture):
53
  API_KEY = get_api_key_fixture
54
  rag = RAGFlow(API_KEY, HOST_ADDRESS)
@@ -59,4 +58,109 @@ def test_delete_documents_in_dataset_with_success(get_api_key_fixture):
59
  docs = ds.upload_documents(document_infos)
60
  ds.delete_documents([docs[0].id])
61
 
 
 
 
 
 
 
 
 
 
 
 
62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from ragflow_sdk import RAGFlow
2
  from common import HOST_ADDRESS
3
+ import pytest
4
 
5
  def test_upload_document_with_success(get_api_key_fixture):
6
  API_KEY = get_api_key_fixture
 
48
  ds.list_documents(keywords="test", page=1, page_size=12)
49
 
50
 
 
51
  def test_delete_documents_in_dataset_with_success(get_api_key_fixture):
52
  API_KEY = get_api_key_fixture
53
  rag = RAGFlow(API_KEY, HOST_ADDRESS)
 
58
  docs = ds.upload_documents(document_infos)
59
  ds.delete_documents([docs[0].id])
60
 
61
+ # upload and parse the document with different in different parse method.
62
+ def test_upload_and_parse_pdf_documents_with_general_parse_method(get_api_key_fixture):
63
+ API_KEY = get_api_key_fixture
64
+ rag = RAGFlow(API_KEY, HOST_ADDRESS)
65
+ ds = rag.create_dataset(name="test_pdf_document")
66
+ with open("test_data/test.pdf","rb") as file:
67
+ blob=file.read()
68
+ document_infos = [{"displayed_name": "test.pdf","blob": blob}]
69
+ docs=ds.upload_documents(document_infos)
70
+ doc = docs[0]
71
+ ds.async_parse_documents([doc.id])
72
 
73
+ def test_upload_and_parse_docx_documents_with_general_parse_method(get_api_key_fixture):
74
+ API_KEY = get_api_key_fixture
75
+ rag = RAGFlow(API_KEY, HOST_ADDRESS)
76
+ ds = rag.create_dataset(name="test_docx_document")
77
+ with open("test_data/test.docx","rb") as file:
78
+ blob=file.read()
79
+ document_infos = [{"displayed_name": "test.docx","blob": blob}]
80
+ docs=ds.upload_documents(document_infos)
81
+ doc = docs[0]
82
+ ds.async_parse_documents([doc.id])
83
+ def test_upload_and_parse_excel_documents_with_general_parse_method(get_api_key_fixture):
84
+ API_KEY = get_api_key_fixture
85
+ rag = RAGFlow(API_KEY, HOST_ADDRESS)
86
+ ds = rag.create_dataset(name="test_excel_document")
87
+ with open("test_data/test.xlsx","rb") as file:
88
+ blob=file.read()
89
+ document_infos = [{"displayed_name": "test.xlsx","blob": blob}]
90
+ docs=ds.upload_documents(document_infos)
91
+ doc = docs[0]
92
+ ds.async_parse_documents([doc.id])
93
+ def test_upload_and_parse_ppt_documents_with_general_parse_method(get_api_key_fixture):
94
+ API_KEY = get_api_key_fixture
95
+ rag = RAGFlow(API_KEY, HOST_ADDRESS)
96
+ ds = rag.create_dataset(name="test_ppt_document")
97
+ with open("test_data/test.ppt","rb") as file:
98
+ blob=file.read()
99
+ document_infos = [{"displayed_name": "test.ppt","blob": blob}]
100
+ docs=ds.upload_documents(document_infos)
101
+ doc = docs[0]
102
+ ds.async_parse_documents([doc.id])
103
+ def test_upload_and_parse_image_documents_with_general_parse_method(get_api_key_fixture):
104
+ API_KEY = get_api_key_fixture
105
+ rag = RAGFlow(API_KEY, HOST_ADDRESS)
106
+ ds = rag.create_dataset(name="test_image_document")
107
+ with open("test_data/test.jpg","rb") as file:
108
+ blob=file.read()
109
+ document_infos = [{"displayed_name": "test.jpg","blob": blob}]
110
+ docs=ds.upload_documents(document_infos)
111
+ doc = docs[0]
112
+ ds.async_parse_documents([doc.id])
113
+ def test_upload_and_parse_txt_documents_with_general_parse_method(get_api_key_fixture):
114
+ API_KEY = get_api_key_fixture
115
+ rag = RAGFlow(API_KEY, HOST_ADDRESS)
116
+ ds = rag.create_dataset(name="test_txt_document")
117
+ with open("test_data/test.txt","rb") as file:
118
+ blob=file.read()
119
+ document_infos = [{"displayed_name": "test.txt","blob": blob}]
120
+ docs=ds.upload_documents(document_infos)
121
+ doc = docs[0]
122
+ ds.async_parse_documents([doc.id])
123
+ def test_upload_and_parse_md_documents_with_general_parse_method(get_api_key_fixture):
124
+ API_KEY = get_api_key_fixture
125
+ rag = RAGFlow(API_KEY, HOST_ADDRESS)
126
+ ds = rag.create_dataset(name="test_md_document")
127
+ with open("test_data/test.md","rb") as file:
128
+ blob=file.read()
129
+ document_infos = [{"displayed_name": "test.md","blob": blob}]
130
+ docs=ds.upload_documents(document_infos)
131
+ doc = docs[0]
132
+ ds.async_parse_documents([doc.id])
133
+
134
+ def test_upload_and_parse_json_documents_with_general_parse_method(get_api_key_fixture):
135
+ API_KEY = get_api_key_fixture
136
+ rag = RAGFlow(API_KEY, HOST_ADDRESS)
137
+ ds = rag.create_dataset(name="test_json_document")
138
+ with open("test_data/test.json","rb") as file:
139
+ blob=file.read()
140
+ document_infos = [{"displayed_name": "test.json","blob": blob}]
141
+ docs=ds.upload_documents(document_infos)
142
+ doc = docs[0]
143
+ ds.async_parse_documents([doc.id])
144
+
145
+ @pytest.mark.skip(reason="")
146
+ def test_upload_and_parse_eml_documents_with_general_parse_method(get_api_key_fixture):
147
+ API_KEY = get_api_key_fixture
148
+ rag = RAGFlow(API_KEY, HOST_ADDRESS)
149
+ ds = rag.create_dataset(name="test_eml_document")
150
+ with open("test_data/test.eml","rb") as file:
151
+ blob=file.read()
152
+ document_infos = [{"displayed_name": "test.eml","blob": blob}]
153
+ docs=ds.upload_documents(document_infos)
154
+ doc = docs[0]
155
+ ds.async_parse_documents([doc.id])
156
+
157
+ def test_upload_and_parse_html_documents_with_general_parse_method(get_api_key_fixture):
158
+ API_KEY = get_api_key_fixture
159
+ rag = RAGFlow(API_KEY, HOST_ADDRESS)
160
+ ds = rag.create_dataset(name="test_html_document")
161
+ with open("test_data/test.html","rb") as file:
162
+ blob=file.read()
163
+ document_infos = [{"displayed_name": "test.html","blob": blob}]
164
+ docs=ds.upload_documents(document_infos)
165
+ doc = docs[0]
166
+ ds.async_parse_documents([doc.id])
sdk/python/test/test_data/.txt DELETED
@@ -1,2 +0,0 @@
1
- hhh
2
- hhh
 
 
 
sdk/python/test/test_data/empty.txt DELETED
File without changes
sdk/python/test/test_data/lol.txt DELETED
@@ -1,3 +0,0 @@
1
- llll
2
- ooooo
3
- llll
 
 
 
 
sdk/python/test/test_data/story.txt DELETED
@@ -1,8 +0,0 @@
1
- Once upon a time, in a small village nestled at the foot of a towering mountain, lived a young girl named Lily. Lily had a heart as pure as the mountain's snowcaps and a spirit as adventurous as the winding trails that led to its peak.
2
- One day, as Lily was gathering berries in the forest's edge, she stumbled upon an old, weathered map hidden beneath a fallen tree. The map was covered in strange symbols and a single, glowing word: "Treasure." Curiousity piqued, Lily decided to embark on a quest to uncover the mystery of the treasure.
3
- With nothing more than her trusty basket of berries, a few pieces of bread, and the map, Lily set off into the unknown. As she climbed higher and higher into the mountains, the air grew crisp, and the scenery transformed into a breathtaking tapestry of lush greenery and sparkling streams.
4
- Along the way, Lily encountered all sorts of challenges. She had to navigate treacherous rivers using fallen logs as bridges, climb steep cliffs with nothing but her agility and determination, and even outsmart a mischievous pack of foxes that tried to lead her astray. But through it all, Lily remained steadfast, her heart filled with hope and a sense of purpose.
5
- Finally, after what seemed like an eternity of trekking, Lily arrived at a hidden valley. At its center stood an ancient tree, its roots entwined with glittering jewels and a chest made of pure gold. This, the map had revealed, was the source of the treasure.
6
- But as Lily approached the chest, she realized that the true treasure was not the riches before her. It was the journey itself—the friendships she had forged with the animals she encountered, the strength she had gained from overcoming obstacles, and the sense of wonder and discovery that filled her heart.
7
- With a smile on her face, Lily gently closed the chest and left it where it was, content in the knowledge that the greatest treasures in life are not always found in gold or jewels. She turned back towards home, her heart full of stories to share and a spirit that had been forever changed by her adventure.
8
- And so, Lily returned to her village, a hero in her own right, with a tale that would be whispered around firesides for generations to come.
 
 
 
 
 
 
 
 
 
sdk/python/test/test_data/test.docx ADDED
Binary file (19.1 kB). View file
 
sdk/python/test/test_data/test.html ADDED
@@ -0,0 +1,148 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html><html><head><script>var __ezHttpConsent={setByCat:function(src,tagType,attributes,category,force){var setScript=function(){if(force||window.ezTcfConsent[category]){var scriptElement=document.createElement(tagType);scriptElement.src=src;attributes.forEach(function(attr){for(var key in attr){if(attr.hasOwnProperty(key)){scriptElement.setAttribute(key,attr[key]);}}});var firstScript=document.getElementsByTagName(tagType)[0];firstScript.parentNode.insertBefore(scriptElement,firstScript);}};if(force||(window.ezTcfConsent&&window.ezTcfConsent.loaded)){setScript();}else if(typeof getEzConsentData==="function"){getEzConsentData().then(function(ezTcfConsent){if(ezTcfConsent&&ezTcfConsent.loaded){setScript();}else{console.error("cannot get ez consent data");force=true;setScript();}});}else{force=true;setScript();console.error("getEzConsentData is not a function");}},};</script>
2
+ <script>var ezTcfConsent=window.ezTcfConsent?window.ezTcfConsent:{loaded:false,store_info:false,develop_and_improve_services:false,measure_ad_performance:false,measure_content_performance:false,select_basic_ads:false,create_ad_profile:false,select_personalized_ads:false,create_content_profile:false,select_personalized_content:false,understand_audiences:false,use_limited_data_to_select_content:false,};function getEzConsentData(){return new Promise(function(resolve){document.addEventListener("ezConsentEvent",function(event){var ezTcfConsent=event.detail.ezTcfConsent;resolve(ezTcfConsent);});});}</script>
3
+ <script>function _setEzCookies(ezConsentData){var cookies=[{name:"ezosuibasgeneris-1",value:"fd2165e4-6c59-4ab4-7fca-f093aabdcd0a; Path=/; Domain=filesamples.com; Expires=Wed, 19 Nov 2025 09:03:25 UTC; Secure; SameSite=None",tcfCategory:"understand_audiences",isEzoic:"true",},{name:"ezopvc_176527",value:"20; Path=/; Domain=filesamples.com; Expires=Tue, 19 Nov 2024 09:33:26 UTC",tcfCategory:"understand_audiences",isEzoic:"true",},{name:"ezoab_176527",value:"mod274; Path=/; Domain=filesamples.com; Max-Age=7200",tcfCategory:"store_info",isEzoic:"true",},{name:"active_template::176527",value:"pub_site.1732007006; Path=/; Domain=filesamples.com; Expires=Thu, 21 Nov 2024 09:03:26 UTC",tcfCategory:"store_info",isEzoic:"true",},{name:"ezoadgid_176527",value:"-1; Path=/; Domain=filesamples.com; Max-Age=1800",tcfCategory:"understand_audiences",isEzoic:"true",}];for(var i=0;i<cookies.length;i++){var cookie=cookies[i];if(ezConsentData&&ezConsentData.loaded&&ezConsentData[cookie.tcfCategory]){document.cookie=cookie.name+"="+cookie.value;}}}
4
+ if(window.ezTcfConsent&&window.ezTcfConsent.loaded){_setEzCookies(window.ezTcfConsent);}else if(typeof getEzConsentData==="function"){getEzConsentData().then(function(ezTcfConsent){if(ezTcfConsent&&ezTcfConsent.loaded){_setEzCookies(window.ezTcfConsent);}else{console.error("cannot get ez consent data");_setEzCookies(window.ezTcfConsent);}});}else{console.error("getEzConsentData is not a function");_setEzCookies(window.ezTcfConsent);}</script><script type="text/javascript" data-ezscrex='false' data-cfasync='false'>window._ezaq = Object.assign({"edge_cache_status":11,"edge_response_time":740,"url":"https://filesamples.com/samples/code/html/sample1.html"}, typeof window._ezaq !== "undefined" ? window._ezaq : {});</script><script type="text/javascript" data-ezscrex='false' data-cfasync='false'>window._ezaq = Object.assign({"ab_test_id":"mod274"}, typeof window._ezaq !== "undefined" ? window._ezaq : {});window.__ez=window.__ez||{};window.__ez.tf={"vidSig":"true"};</script><script type="text/javascript" data-ezscrex='false' data-cfasync='false'>window.ezDisableAds = true;</script><script data-ezscrex='false' data-cfasync='false' data-pagespeed-no-defer>var __ez=__ez||{};__ez.stms=Date.now();__ez.evt={};__ez.script={};__ez.ck=__ez.ck||{};__ez.template={};__ez.template.isOrig=false;__ez.queue=function(){var e=0,i=0,t=[],n=!1,o=[],r=[],s=!0,a=function(e,i,n,o,r,s,a){var l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:window,d=this;this.name=e,this.funcName=i,this.parameters=null===n?null:w(n)?n:[n],this.isBlock=o,this.blockedBy=r,this.deleteWhenComplete=s,this.isError=!1,this.isComplete=!1,this.isInitialized=!1,this.proceedIfError=a,this.fWindow=l,this.isTimeDelay=!1,this.process=function(){u("... func = "+e),d.isInitialized=!0,d.isComplete=!0,u("... func.apply: "+e);var i=d.funcName.split("."),n=null,o=this.fWindow||window;i.length>3||(n=3===i.length?o[i[0]][i[1]][i[2]]:2===i.length?o[i[0]][i[1]]:o[d.funcName]),null!=n&&n.apply(null,this.parameters),!0===d.deleteWhenComplete&&delete t[e],!0===d.isBlock&&(u("----- F'D: "+d.name),m())}},l=function(e,i,t,n,o,r,s){var a=arguments.length>7&&void 0!==arguments[7]?arguments[7]:window,l=this;this.name=e,this.path=i,this.async=o,this.defer=r,this.isBlock=t,this.blockedBy=n,this.isInitialized=!1,this.isError=!1,this.isComplete=!1,this.proceedIfError=s,this.fWindow=a,this.isTimeDelay=!1,this.isPath=function(e){return"/"===e[0]&&"/"!==e[1]},this.getSrc=function(e){return void 0!==window.__ezScriptHost&&this.isPath(e)&&"banger.js"!==this.name?window.__ezScriptHost+e:e},this.process=function(){l.isInitialized=!0,u("... file = "+e);var i=this.fWindow?this.fWindow.document:document,t=i.createElement("script");t.src=this.getSrc(this.path),!0===o?t.async=!0:!0===r&&(t.defer=!0),t.onerror=function(){var e={url:window.location.href,name:l.name,path:l.path,user_agent:window.navigator.userAgent};"undefined"!=typeof _ezaq&&(e.pageview_id=_ezaq.page_view_id);var i=encodeURIComponent(JSON.stringify(e)),t=new XMLHttpRequest;t.open("GET","//g.ezoic.net/ezqlog?d="+i,!0),t.send(),u("----- ERR'D: "+l.name),l.isError=!0,!0===l.isBlock&&m()},t.onreadystatechange=t.onload=function(){var e=t.readyState;u("----- F'D: "+l.name),e&&!/loaded|complete/.test(e)||(l.isComplete=!0,!0===l.isBlock&&m())},i.getElementsByTagName("head")[0].appendChild(t)}},d=function(e,i){this.name=e,this.path="",this.async=!1,this.defer=!1,this.isBlock=!1,this.blockedBy=[],this.isInitialized=!0,this.isError=!1,this.isComplete=i,this.proceedIfError=!1,this.isTimeDelay=!1,this.process=function(){}};function c(e,i,n,s,a,d,c,f,u){var m=new l(e,i,n,s,a,d,c,u);!0===f?o[e]=m:r[e]=m,t[e]=m,h(m)}function h(e){!0!==f(e)&&0!=s&&e.process()}function f(e){if(!0===e.isTimeDelay&&!1===n)return u(e.name+" blocked = TIME DELAY!"),!0;if(w(e.blockedBy))for(var i=0;i<e.blockedBy.length;i++){var o=e.blockedBy[i];if(!1===t.hasOwnProperty(o))return u(e.name+" blocked = "+o),!0;if(!0===e.proceedIfError&&!0===t[o].isError)return!1;if(!1===t[o].isComplete)return u(e.name+" blocked = "+o),!0}return!1}function u(e){var i=window.location.href,t=new RegExp("[?&]ezq=([^&#]*)","i").exec(i);"1"===(t?t[1]:null)&&console.debug(e)}function m(){++e>200||(u("let's go"),p(o),p(r))}function p(e){for(var i in e)if(!1!==e.hasOwnProperty(i)){var t=e[i];!0===t.isComplete||f(t)||!0===t.isInitialized||!0===t.isError?!0===t.isError?u(t.name+": error"):!0===t.isComplete?u(t.name+": complete already"):!0===t.isInitialized&&u(t.name+": initialized already"):t.process()}}function w(e){return"[object Array]"==Object.prototype.toString.call(e)}return window.addEventListener("load",(function(){setTimeout((function(){n=!0,u("TDELAY -----"),m()}),5e3)}),!1),{addFile:c,addFileOnce:function(e,i,n,o,r,s,a,l,d){t[e]||c(e,i,n,o,r,s,a,l,d)},addDelayFile:function(e,i){var n=new l(e,i,!1,[],!1,!1,!0);n.isTimeDelay=!0,u(e+" ... FILE! TDELAY"),r[e]=n,t[e]=n,h(n)},addFunc:function(e,n,s,l,d,c,f,u,m,p){!0===c&&(e=e+"_"+i++);var w=new a(e,n,s,l,d,f,u,p);!0===m?o[e]=w:r[e]=w,t[e]=w,h(w)},addDelayFunc:function(e,i,n){var o=new a(e,i,n,!1,[],!0,!0);o.isTimeDelay=!0,u(e+" ... FUNCTION! TDELAY"),r[e]=o,t[e]=o,h(o)},items:t,processAll:m,setallowLoad:function(e){s=e},markLoaded:function(e){if(e&&0!==e.length){if(e in t){var i=t[e];!0===i.isComplete?u(i.name+" "+e+": error loaded duplicate"):(i.isComplete=!0,i.isInitialized=!0)}else t[e]=new d(e,!0);u("markLoaded dummyfile: "+t[e].name)}},logWhatsBlocked:function(){for(var e in t)!1!==t.hasOwnProperty(e)&&f(t[e])}}}();__ez.evt.add=function(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n()},__ez.evt.remove=function(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent?e.detachEvent("on"+t,n):delete e["on"+t]};__ez.script.add=function(e){var t=document.createElement("script");t.src=e,t.async=!0,t.type="text/javascript",document.getElementsByTagName("head")[0].appendChild(t)};__ez.dot={};__ez.queue.addFile('/detroitchicago/boise.js', '/detroitchicago/boise.js?gcb=195-2&cb=5', true, [], true, false, true, false);__ez.queue.addFile('/parsonsmaize/abilene.js', '/parsonsmaize/abilene.js?gcb=195-2&cb=41', true, [], true, false, true, false);</script>
5
+ <script data-ezscrex="false" type="text/javascript" data-cfasync="false">window._ezaq = Object.assign({"ad_cache_level":1,"adpicker_placement_cnt":0,"ai_placeholder_cache_level":1,"ai_placeholder_placement_cnt":-1,"domain_id":176527,"ezcache_level":0,"ezcache_skip_code":14,"has_bad_image":0,"has_bad_words":0,"is_sitespeed":0,"lt_cache_level":0,"response_size":7105,"response_size_orig":1717,"response_time_orig":660,"template_id":147,"url":"https://filesamples.com/samples/code/html/sample1.html","word_count":196,"worst_bad_word_level":0}, typeof window._ezaq !== "undefined" ? window._ezaq : {});__ez.queue.markLoaded('ezaqBaseReady');</script>
6
+ <script type="text/javascript">(function(){function storageAvailable(type){var storage;try{storage=window[type];var x='__storage_test__';storage.setItem(x,x);storage.removeItem(x);return true;}
7
+ catch(e){return e instanceof DOMException&&(e.code===22||e.code===1014||e.name==='QuotaExceededError'||e.name==='NS_ERROR_DOM_QUOTA_REACHED')&&(storage&&storage.length!==0);}}
8
+ function remove_ama_config(){if(storageAvailable('localStorage')){localStorage.removeItem("google_ama_config");}}
9
+ remove_ama_config()})()</script>
10
+ <script type="text/javascript">var ezoicTestActive = true</script>
11
+ <script type='text/javascript' data-ezscrex='false' data-cfasync='false'>
12
+ window.ezAnalyticsStatic = true;
13
+
14
+ function analyticsAddScript(script) {
15
+ var ezDynamic = document.createElement('script');
16
+ ezDynamic.type = 'text/javascript';
17
+ ezDynamic.innerHTML = script;
18
+ document.head.appendChild(ezDynamic);
19
+ }
20
+ function getCookiesWithPrefix() {
21
+ var allCookies = document.cookie.split(';');
22
+ var cookiesWithPrefix = {};
23
+
24
+ for (var i = 0; i < allCookies.length; i++) {
25
+ var cookie = allCookies[i].trim();
26
+
27
+ for (var j = 0; j < arguments.length; j++) {
28
+ var prefix = arguments[j];
29
+ if (cookie.indexOf(prefix) === 0) {
30
+ var cookieParts = cookie.split('=');
31
+ var cookieName = cookieParts[0];
32
+ var cookieValue = cookieParts.slice(1).join('=');
33
+ cookiesWithPrefix[cookieName] = decodeURIComponent(cookieValue);
34
+ break; // Once matched, no need to check other prefixes
35
+ }
36
+ }
37
+ }
38
+
39
+ return cookiesWithPrefix;
40
+ }
41
+ function productAnalytics() {
42
+ var d = {"pr":[1,6,3],"aop":{"2":0,"4":147},"omd5":"6d6bb459461be9d3f11aa7f4f6b6031d"};
43
+ d.u = _ezaq.url;
44
+ d.p = _ezaq.page_view_id;
45
+ d.v = _ezaq.visit_uuid;
46
+ d.ab = _ezaq.ab_test_id;
47
+ d.e = JSON.stringify(_ezaq);
48
+ d.ref = document.referrer;
49
+ d.c = getCookiesWithPrefix('active_template', 'ez', 'lp_');
50
+ if(typeof ez_utmParams !== 'undefined') {
51
+ d.utm = ez_utmParams;
52
+ }
53
+
54
+ var dataText = JSON.stringify(d);
55
+ var xhr = new XMLHttpRequest();
56
+ xhr.open('POST','/ezais/analytics?cb=1', true);
57
+ xhr.onload = function () {
58
+ if (xhr.status!=200) {
59
+ return;
60
+ }
61
+
62
+ if(document.readyState !== 'loading') {
63
+ analyticsAddScript(xhr.response);
64
+ return;
65
+ }
66
+
67
+ var eventFunc = function() {
68
+ if(document.readyState === 'loading') {
69
+ return;
70
+ }
71
+ document.removeEventListener('readystatechange', eventFunc, false);
72
+ analyticsAddScript(xhr.response);
73
+ };
74
+
75
+ document.addEventListener('readystatechange', eventFunc, false);
76
+ };
77
+ xhr.setRequestHeader('Content-Type','text/plain');
78
+ xhr.send(dataText);
79
+ }
80
+ __ez.queue.addFunc("productAnalytics", "productAnalytics", null, true, ['ezaqBaseReady'], false, false, false, true);
81
+ </script><base href="https://filesamples.com/samples/code/html/sample1.html"/>
82
+ <title>Sample HTML 1</title>
83
+ <script type='text/javascript'>
84
+ var ezoTemplate = 'pub_site_noads';
85
+ var ezouid = '1';
86
+ var ezoFormfactor = '1';
87
+ </script><script data-ezscrex="false" type='text/javascript'>
88
+ var soc_app_id = '0';
89
+ var did = 176527;
90
+ var ezdomain = 'filesamples.com';
91
+ var ezoicSearchable = 1;
92
+ </script>
93
+ <link rel='canonical' href='https://filesamples.com/samples/code/html/sample1.html' /></head>
94
+ <body><script>__ez.queue.addFile('/detroitchicago/omaha.js', '/detroitchicago/omaha.js?gcb=2&cb=6', true, [], true, false, true, false);</script>
95
+ Sample HTML 1
96
+ <h1>Minime vero, inquit ille, consentit.</h1>
97
+
98
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Inscite autem medicinae et gubernationis ultimum cum ultimo sapientiae comparatur. Cur igitur, cum de re conveniat, non malumus usitate loqui? </p>
99
+
100
+ <ol>
101
+ <li>Si qua in iis corrigere voluit, deteriora fecit.</li>
102
+ <li>At quicum ioca seria, ut dicitur, quicum arcana, quicum occulta omnia?</li>
103
+ <li>An dolor longissimus quisque miserrimus, voluptatem non optabiliorem diuturnitas facit?</li>
104
+ <li>Multoque hoc melius nos veriusque quam Stoici.</li>
105
+ <li>Stuprata per vim Lucretia a regis filio testata civis se ipsa interemit.</li>
106
+ <li>Ego vero isti, inquam, permitto.</li>
107
+ </ol>
108
+
109
+
110
+ <p>Graecum enim hunc versum nostis omnes-: Suavis laborum est praeteritorum memoria. Qui enim existimabit posse se miserum esse beatus non erit. Si qua in iis corrigere voluit, deteriora fecit. <a href="http://loripsum.net/" target="_blank">Si qua in iis corrigere voluit, deteriora fecit.</a> Dic in quovis conventu te omnia facere, ne doleas. Tu quidem reddes; </p>
111
+
112
+ <ul>
113
+ <li>Duo Reges: constructio interrete.</li>
114
+ <li>Contineo me ab exemplis.</li>
115
+ <li>Quo plebiscito decreta a senatu est consuli quaestio Cn.</li>
116
+ <li>Quicquid porro animo cernimus, id omne oritur a sensibus;</li>
117
+ <li>Eam si varietatem diceres, intellegerem, ut etiam non dicente te intellego;</li>
118
+ <li>Qua ex cognitione facilior facta est investigatio rerum occultissimarum.</li>
119
+ </ul>
120
+
121
+
122
+ <blockquote cite="http://loripsum.net">
123
+ Me igitur ipsum ames oportet, non mea, si veri amici futuri sumus.
124
+ </blockquote>
125
+
126
+ <script type='text/javascript' data-ezscrex='false'>var EmbedExclusionEvaluated = 'exempt'; var EzoicMagicPlayerExclusionSelectors = [".humix-off"];var EzoicMagicPlayerInclusionSelectors = [];var EzoicPreferredLocation = '1';</script>
127
+ <script type='text/javascript' style='display:none;' async>if (typeof window.__ez !== 'undefined' && window.__ez?.queue?.addFileOnce) {window.__ez.queue.addFileOnce('identity', 'https://go.ezodn.com/detroitchicago/indy.js?cb=6&gcb=0', true, [], true, false, false, true);} </script><script data-cfasync="false">function _emitEzConsentEvent(){var customEvent=new CustomEvent("ezConsentEvent",{detail:{ezTcfConsent:window.ezTcfConsent},bubbles:true,cancelable:true,});document.dispatchEvent(customEvent);}
128
+ (function(window,document){function _setAllEzConsentTrue(){window.ezTcfConsent.loaded=true;window.ezTcfConsent.store_info=true;window.ezTcfConsent.develop_and_improve_services=true;window.ezTcfConsent.measure_ad_performance=true;window.ezTcfConsent.measure_content_performance=true;window.ezTcfConsent.select_basic_ads=true;window.ezTcfConsent.create_ad_profile=true;window.ezTcfConsent.select_personalized_ads=true;window.ezTcfConsent.create_content_profile=true;window.ezTcfConsent.select_personalized_content=true;window.ezTcfConsent.understand_audiences=true;window.ezTcfConsent.use_limited_data_to_select_content=true;window.ezTcfConsent.select_personalized_content=true;}
129
+ function _clearEzConsentCookie(){document.cookie="ezCMPCookieConsent=tcf2;Domain=.filesamples.com;Path=/;expires=Thu, 01 Jan 1970 00:00:00 GMT";}
130
+ _clearEzConsentCookie();if(typeof window.__tcfapi!=="undefined"){window.ezgconsent=false;var amazonHasRun=false;function _ezAllowed(tcdata,purpose){return(tcdata.purpose.consents[purpose]||tcdata.purpose.legitimateInterests[purpose]);}
131
+ function _reloadAds(){if(typeof window.ezorefgsl==="function"&&typeof window.ezslots==="object"){if(typeof __ezapsFetchBids=="function"&&amazonHasRun===false){ezapsFetchBids(__ezaps);if(typeof __ezapsVideo!="undefined"){ezapsFetchBids(__ezapsVideo,"video");}
132
+ amazonHasRun=true;}
133
+ var slots=[];for(var i=0;i<window.ezslots.length;i++){if(window[window.ezslots[i]]&&typeof window[window.ezslots[i]]==="object"){slots.push(window[window.ezslots[i]]);}else{setTimeout(_reloadAds,100);return false;}}
134
+ for(var i=0;i<slots.length;i++){window.ezorefgsl(slots[i]);}}else if(!window.ezadtimeoutset){window.ezadtimeoutset=true;setTimeout(_reloadAds,100);}}
135
+ function _handleConsentDecision(tcdata){window.ezTcfConsent.loaded=true;if(!tcdata.vendor.consents["347"]&&!tcdata.vendor.legitimateInterests["347"]){window._emitEzConsentEvent();return;}
136
+ window.ezTcfConsent.store_info=_ezAllowed(tcdata,"1");window.ezTcfConsent.develop_and_improve_services=_ezAllowed(tcdata,"10");window.ezTcfConsent.measure_content_performance=_ezAllowed(tcdata,"8");window.ezTcfConsent.select_basic_ads=_ezAllowed(tcdata,"2");window.ezTcfConsent.create_ad_profile=_ezAllowed(tcdata,"3");window.ezTcfConsent.select_personalized_ads=_ezAllowed(tcdata,"4");window.ezTcfConsent.create_content_profile=_ezAllowed(tcdata,"5");window.ezTcfConsent.measure_ad_performance=_ezAllowed(tcdata,"7");window.ezTcfConsent.use_limited_data_to_select_content=_ezAllowed(tcdata,"11");window.ezTcfConsent.select_personalized_content=_ezAllowed(tcdata,"6");window.ezTcfConsent.understand_audiences=_ezAllowed(tcdata,"9");window._emitEzConsentEvent();}
137
+ function _handleGoogleConsentV2(tcdata){if(!tcdata||!tcdata.purpose||!tcdata.purpose.consents){return;}
138
+ var googConsentV2={};if(tcdata.purpose.consents[1]){googConsentV2.ad_storage='granted';googConsentV2.analytics_storage='granted';}
139
+ if(tcdata.purpose.consents[3]&&tcdata.purpose.consents[4]){googConsentV2.ad_personalization='granted';}
140
+ if(tcdata.purpose.consents[1]&&tcdata.purpose.consents[7]){googConsentV2.ad_user_data='granted';}
141
+ if(googConsentV2.analytics_storage=='denied'){gtag('set','url_passthrough',true);}
142
+ gtag('consent','update',googConsentV2);}
143
+ __tcfapi("addEventListener",2,function(tcdata,success){if(!success||!tcdata){window._emitEzConsentEvent();return;}
144
+ if(!tcdata.gdprApplies){_setAllEzConsentTrue();window._emitEzConsentEvent();return;}
145
+ if(tcdata.eventStatus==="useractioncomplete"||tcdata.eventStatus==="tcloaded"){if(typeof gtag!='undefined'){_handleGoogleConsentV2(tcdata);}
146
+ _handleConsentDecision(tcdata);if(tcdata.purpose.consents["1"]===true&&tcdata.vendor.consents["755"]!==false){window.ezgconsent=true;(adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=0;_reloadAds();}else{_reloadAds();}
147
+ if(window.__ezconsent){__ezconsent.setEzoicConsentSettings(ezConsentCategories);}
148
+ __tcfapi("removeEventListener",2,function(success){return null;},tcdata.listenerId);if(!(tcdata.purpose.consents["1"]===true&&_ezAllowed(tcdata,"2")&&_ezAllowed(tcdata,"3")&&_ezAllowed(tcdata,"4"))){if(typeof __ez=="object"&&typeof __ez.bit=="object"&&typeof window["_ezaq"]=="object"&&typeof window["_ezaq"]["page_view_id"]=="string"){__ez.bit.Add(window["_ezaq"]["page_view_id"],[new __ezDotData("non_personalized_ads",true),]);}}}});}else{_setAllEzConsentTrue();window._emitEzConsentEvent();}})(window,document);</script></body></html>
sdk/python/test/test_data/test.jpg ADDED
sdk/python/test/test_data/test.json ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "单车": [
3
+ "自行车"
4
+ ],
5
+ "青禾服装": [
6
+ "青禾服饰"
7
+ ],
8
+ "救济灾民": [
9
+ "救助",
10
+ "灾民救济",
11
+ "赈济"
12
+ ],
13
+ "左移": [],
14
+ "低速": [],
15
+ "雨果网": [],
16
+ "钢小二": [
17
+ "成立于2013年,位于江苏省无锡市,是一家以从事研究和试验发展为主的企业"
18
+ ],
19
+ "第五项": [
20
+ "5项"
21
+ ],
22
+ "铸排机": [
23
+ "机排",
24
+ "排铸机",
25
+ "排铸"
26
+ ],
27
+ "金淳高分子": [],
28
+ "麦门冬汤": [],
29
+ "错位": [],
30
+ "佰特吉姆": [],
31
+ "楼体": [],
32
+ "展美科技": [
33
+ "美展"
34
+ ],
35
+ "中寮": [],
36
+ "贪官汙吏": [
37
+ "...",
38
+ "贪吏",
39
+ "贪官污吏"
40
+ ],
41
+ "掩蔽部": [
42
+ "掩 蔽 部"
43
+ ],
44
+ "海宏智能": [],
45
+ "中寰": [],
46
+ "万次": [],
47
+ "领星资本": [
48
+ "星领"
49
+ ],
50
+ "肯讯": [],
51
+ "坎肩": [],
52
+ "爱农人": [],
53
+ "易美餐": [],
54
+ "寸丝半粟": [],
55
+ "罗丹萍": [],
56
+ "转导物": [],
57
+ "泊寓": [],
58
+ "万欧": [
59
+ "欧万"
60
+ ],
61
+ "友聚惠": [
62
+ "友惠",
63
+ "惠友"
64
+ ],
65
+ "舞牙弄爪": [
66
+ ":形容凶猛的样子,比喻威胁、恐吓",
67
+ "原形容猛兽的凶相,后常用来比喻猖狂凶恶的样子",
68
+ "成语解释:原形容猛兽的凶相,后常用来比喻猖狂凶恶的样子",
69
+ "原形容猛兽的凶相,后常用来比喻猖狂(好工具hao86.com",
70
+ "牙舞爪",
71
+ "形容猛兽凶恶可怕。也比喻猖狂凶恶",
72
+ "舞爪"
73
+ ],
74
+ "上海致上": [
75
+ "上海上",
76
+ "上海市"
77
+ ],
78
+ "迪因加": [],
79
+ "李正茂": [],
80
+ "君来投": [],
81
+ "双掌空": [
82
+ "双掌 空",
83
+ "空掌",
84
+ "两手空空"
85
+ ],
86
+ "浩石": [
87
+ "石浩",
88
+ "皓石"
89
+ ],
90
+ "云阅文学": [],
91
+ "阿斯帕": [],
92
+ "中导": [],
93
+ "以诚相待": [],
94
+ "中融金服": [],
95
+ "尚股网": [],
96
+ "叶立钦": [
97
+ "叶利钦"
98
+ ],
99
+ "新信钱包": [
100
+ "信信"
101
+ ],
102
+ "赛苏投资": [
103
+ "投资者"
104
+ ],
105
+ "售价": [],
106
+ "帮医网": []
107
+ }
sdk/python/test/test_data/test.md ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Quod equidem non reprehendo;
2
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quibus natura iure responderit non esse verum aliunde finem beate vivendi, a se principia rei gerendae peti; Quae enim adhuc protulisti, popularia sunt, ego autem a te elegantiora desidero. Duo Reges: constructio interrete. Tum Lucius: Mihi vero ista valde probata sunt, quod item fratri puto. Bestiarum vero nullum iudicium puto. Nihil enim iam habes, quod ad corpus referas; Deinde prima illa, quae in congressu solemus: Quid tu, inquit, huc? Et homini, qui ceteris animantibus plurimum praestat, praecipue a natura nihil datum esse dicemus?
3
+
4
+ Iam id ipsum absurdum, maximum malum neglegi. Quod ea non occurrentia fingunt, vincunt Aristonem; Atqui perspicuum est hominem e corpore animoque constare, cum primae sint animi partes, secundae corporis. Fieri, inquam, Triari, nullo pacto potest, ut non dicas, quid non probes eius, a quo dissentias. Equidem e Cn. An dubium est, quin virtus ita maximam partem optineat in rebus humanis, ut reliquas obruat?
5
+
6
+ Quis istum dolorem timet?
7
+ Summus dolor plures dies manere non potest? Dicet pro me ipsa virtus nec dubitabit isti vestro beato M. Tubulum fuisse, qua illum, cuius is condemnatus est rogatione, P. Quod si ita sit, cur opera philosophiae sit danda nescio.
8
+
9
+ Ex eorum enim scriptis et institutis cum omnis doctrina liberalis, omnis historia.
10
+ Quod si ita est, sequitur id ipsum, quod te velle video, omnes semper beatos esse sapientes. Cum enim fertur quasi torrens oratio, quamvis multa cuiusque modi rapiat, nihil tamen teneas, nihil apprehendas, nusquam orationem rapidam coerceas. Ita redarguitur ipse a sese, convincunturque scripta eius probitate ipsius ac moribus. At quanta conantur! Mundum hunc omnem oppidum esse nostrum! Incendi igitur eos, qui audiunt, vides. Vide, ne magis, inquam, tuum fuerit, cum re idem tibi, quod mihi, videretur, non nova te rebus nomina inponere. Qui-vere falsone, quaerere mittimus-dicitur oculis se privasse; Si ista mala sunt, in quae potest incidere sapiens, sapientem esse non esse ad beate vivendum satis. At vero si ad vitem sensus accesserit, ut appetitum quendam habeat et per se ipsa moveatur, quid facturam putas?
11
+
12
+ Quem si tenueris, non modo meum Ciceronem, sed etiam me ipsum abducas licebit.
13
+ Stulti autem malorum memoria torquentur, sapientes bona praeterita grata recordatione renovata delectant.
14
+ Esse enim quam vellet iniquus iustus poterat inpune.
15
+ Quae autem natura suae primae institutionis oblita est?
16
+ Verum tamen cum de rebus grandioribus dicas, ipsae res verba rapiunt;
17
+ Hoc est non modo cor non habere, sed ne palatum quidem.
18
+ Voluptatem cum summum bonum diceret, primum in eo ipso parum vidit, deinde hoc quoque alienum; Sed tu istuc dixti bene Latine, parum plane. Nam haec ipsa mihi erunt in promptu, quae modo audivi, nec ante aggrediar, quam te ab istis, quos dicis, instructum videro. Fatebuntur Stoici haec omnia dicta esse praeclare, neque eam causam Zenoni desciscendi fuisse. Non autem hoc: igitur ne illud quidem. Ratio quidem vestra sic cogit. Cum audissem Antiochum, Brute, ut solebam, cum M. An quod ita callida est, ut optime possit architectari voluptates?
19
+
20
+ Idemne, quod iucunde?
21
+ Haec mihi videtur delicatior, ut ita dicam, molliorque ratio, quam virtutis vis gravitasque postulat. Sed quoniam et advesperascit et mihi ad villam revertendum est, nunc quidem hactenus; Cuius ad naturam apta ratio vera illa et summa lex a philosophis dicitur. Neque solum ea communia, verum etiam paria esse dixerunt. Sed nunc, quod agimus; A mene tu?
sdk/python/test/test_data/test.pdf ADDED
Binary file (65.7 kB). View file
 
sdk/python/test/test_data/test.ppt ADDED
Binary file (33.6 kB). View file
 
sdk/python/test/test_data/test.txt CHANGED
@@ -1,3 +1,21 @@
1
- test
2
- test
3
- test
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Quod equidem non reprehendo;
2
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quibus natura iure responderit non esse verum aliunde finem beate vivendi, a se principia rei gerendae peti; Quae enim adhuc protulisti, popularia sunt, ego autem a te elegantiora desidero. Duo Reges: constructio interrete. Tum Lucius: Mihi vero ista valde probata sunt, quod item fratri puto. Bestiarum vero nullum iudicium puto. Nihil enim iam habes, quod ad corpus referas; Deinde prima illa, quae in congressu solemus: Quid tu, inquit, huc? Et homini, qui ceteris animantibus plurimum praestat, praecipue a natura nihil datum esse dicemus?
3
+
4
+ Iam id ipsum absurdum, maximum malum neglegi. Quod ea non occurrentia fingunt, vincunt Aristonem; Atqui perspicuum est hominem e corpore animoque constare, cum primae sint animi partes, secundae corporis. Fieri, inquam, Triari, nullo pacto potest, ut non dicas, quid non probes eius, a quo dissentias. Equidem e Cn. An dubium est, quin virtus ita maximam partem optineat in rebus humanis, ut reliquas obruat?
5
+
6
+ Quis istum dolorem timet?
7
+ Summus dolor plures dies manere non potest? Dicet pro me ipsa virtus nec dubitabit isti vestro beato M. Tubulum fuisse, qua illum, cuius is condemnatus est rogatione, P. Quod si ita sit, cur opera philosophiae sit danda nescio.
8
+
9
+ Ex eorum enim scriptis et institutis cum omnis doctrina liberalis, omnis historia.
10
+ Quod si ita est, sequitur id ipsum, quod te velle video, omnes semper beatos esse sapientes. Cum enim fertur quasi torrens oratio, quamvis multa cuiusque modi rapiat, nihil tamen teneas, nihil apprehendas, nusquam orationem rapidam coerceas. Ita redarguitur ipse a sese, convincunturque scripta eius probitate ipsius ac moribus. At quanta conantur! Mundum hunc omnem oppidum esse nostrum! Incendi igitur eos, qui audiunt, vides. Vide, ne magis, inquam, tuum fuerit, cum re idem tibi, quod mihi, videretur, non nova te rebus nomina inponere. Qui-vere falsone, quaerere mittimus-dicitur oculis se privasse; Si ista mala sunt, in quae potest incidere sapiens, sapientem esse non esse ad beate vivendum satis. At vero si ad vitem sensus accesserit, ut appetitum quendam habeat et per se ipsa moveatur, quid facturam putas?
11
+
12
+ Quem si tenueris, non modo meum Ciceronem, sed etiam me ipsum abducas licebit.
13
+ Stulti autem malorum memoria torquentur, sapientes bona praeterita grata recordatione renovata delectant.
14
+ Esse enim quam vellet iniquus iustus poterat inpune.
15
+ Quae autem natura suae primae institutionis oblita est?
16
+ Verum tamen cum de rebus grandioribus dicas, ipsae res verba rapiunt;
17
+ Hoc est non modo cor non habere, sed ne palatum quidem.
18
+ Voluptatem cum summum bonum diceret, primum in eo ipso parum vidit, deinde hoc quoque alienum; Sed tu istuc dixti bene Latine, parum plane. Nam haec ipsa mihi erunt in promptu, quae modo audivi, nec ante aggrediar, quam te ab istis, quos dicis, instructum videro. Fatebuntur Stoici haec omnia dicta esse praeclare, neque eam causam Zenoni desciscendi fuisse. Non autem hoc: igitur ne illud quidem. Ratio quidem vestra sic cogit. Cum audissem Antiochum, Brute, ut solebam, cum M. An quod ita callida est, ut optime possit architectari voluptates?
19
+
20
+ Idemne, quod iucunde?
21
+ Haec mihi videtur delicatior, ut ita dicam, molliorque ratio, quam virtutis vis gravitasque postulat. Sed quoniam et advesperascit et mihi ad villam revertendum est, nunc quidem hactenus; Cuius ad naturam apta ratio vera illa et summa lex a philosophis dicitur. Neque solum ea communia, verum etiam paria esse dixerunt. Sed nunc, quod agimus; A mene tu?
sdk/python/test/test_data/test.xlsx ADDED
Binary file (10.5 kB). View file
 
sdk/python/test/test_data/test1.txt DELETED
@@ -1,4 +0,0 @@
1
- test1
2
- test1
3
- aaaa document args arg
4
- rag document
 
 
 
 
 
sdk/python/test/test_data/test2.txt DELETED
@@ -1,4 +0,0 @@
1
- test22
2
- test22
3
- aaaa document args arg
4
- rag document
 
 
 
 
 
sdk/python/test/test_data/test3.txt DELETED
@@ -1,4 +0,0 @@
1
- test3
2
- test333
3
- aaaa document args arg
4
- rag document
 
 
 
 
 
sdk/python/test/test_data/westworld.pdf DELETED
Binary file (33.1 kB)