davidkhala.ai 0.1.2__py3-none-any.whl → 0.1.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +0,0 @@
1
- from datetime import datetime
2
-
3
-
4
- def with_datetime(filename:str):
5
- if ' ' in filename:
6
- raise ValueError(f"Filename '{filename}' should not contain spaces.")
7
- return f"{datetime.now().strftime("%Y%m%d_%H%M%S")}.{filename}"
8
-
9
-
@@ -141,13 +141,40 @@ class Dataset(API):
141
141
  'limit': size
142
142
  })
143
143
 
144
- def list_documents(self) -> Iterable[list[DocumentDict]]:
145
- return Iterator(self.paginate_documents, None)
144
+ def list_documents(self) -> Iterable[DocumentDict]:
145
+ for document_batch in Iterator(self.paginate_documents, None):
146
+ for document in document_batch:
147
+ yield document
146
148
 
147
149
  def has_document(self, name) -> bool:
148
150
  return any(name == item['name'] for row in self.list_documents() for item in row)
149
151
 
150
152
 
153
+ class ChunkDict(TypedDict):
154
+ id: str
155
+ position: int
156
+ document_id: str
157
+ content: str
158
+ sign_content: str # trimmed version of content
159
+ answer: Optional[str] # only used in QA chunk
160
+ word_count: int
161
+ tokens: int
162
+ keywords: Optional[list[str]]
163
+ index_node_id: str # chunk 在向量索引中的节点 ID
164
+ index_node_hash: str # hash of sign_content
165
+ hit_count: int
166
+ enabled: bool
167
+ status: str # 'completed'
168
+ created_at: int # timestamp
169
+ updated_at: int # timestamp
170
+ completed_at: int # timestamp
171
+ created_by: str # user id
172
+ child_chunks: list
173
+ error: Optional
174
+ stopped_at: Optional[int] # timestamp
175
+ disabled_at: Optional[int] # timestamp
176
+
177
+
151
178
  class Document(API):
152
179
  def __init__(self, d: Dataset.Instance, document_id: str):
153
180
  super().__init__(d.api_key, f"{d.base_url}/documents/{document_id}")
@@ -157,7 +184,19 @@ class Document(API):
157
184
  except requests.exceptions.HTTPError as e:
158
185
  if e.response.status_code == 404:
159
186
  self.exist = False
160
- raise e
187
+ else:
188
+ raise e
161
189
 
162
190
  def get(self):
163
191
  return self.request(self.base_url, "GET")
192
+
193
+ def paginate_chunks(self, page=1, size=20):
194
+ return self.request(f"{self.base_url}/segments", "GET", params={
195
+ 'page': page,
196
+ 'limit': size
197
+ })
198
+
199
+ def list_chunks(self) -> Iterable[ChunkDict]:
200
+ for chunk_batch in Iterator(self.paginate_chunks, None):
201
+ for chunk in chunk_batch:
202
+ yield chunk
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: davidkhala.ai
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: misc AI modules
5
5
  Requires-Python: >=3.13
6
6
  Provides-Extra: ali
@@ -5,9 +5,9 @@ davidkhala/ai/agent/README.md,sha256=kIPsx3gOjrpOw7w2qhNEALuCEQkuh4nYp6uBnijdvHE
5
5
  davidkhala/ai/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  davidkhala/ai/agent/langgraph.py,sha256=jrc_Yvgo7eJjd3y5UJn0t1FzpnObDGYscwgsuVl2O_I,1052
7
7
  davidkhala/ai/agent/ragflow.py,sha256=UaK31us6V0NhAPCthGo07rQsm72vlR-McmihC_NDe1g,273
8
- davidkhala/ai/agent/dify/__init__.py,sha256=GNgNwwX75NGBNsyKnA_Qz63QnbwOwF4nKd5fhHwdcKM,246
8
+ davidkhala/ai/agent/dify/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  davidkhala/ai/agent/dify/base.py,sha256=V4BIhG9oTg9ayPZnYVxxA1Yobl2C4ukSWEOu2U_l0Tw,259
10
- davidkhala/ai/agent/dify/knowledge.py,sha256=FH-aSMx3EG7uXYBPL0olbOKfgeYEwkgL5SHYFsPSsKU,4980
10
+ davidkhala/ai/agent/dify/knowledge.py,sha256=GFRKbudSoTR6BX7FiMg6a0uTepkm1X1N7kwqowDyRg4,6214
11
11
  davidkhala/ai/ali/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  davidkhala/ai/ali/dashscope.py,sha256=SZIzRhVHlLx3s5I2RNUh2-u8OoSdrbvoN5e1k8Mh8N0,1943
13
13
  davidkhala/ai/api/__init__.py,sha256=q2Ro5nhW5kJx2CYR1MRVamjTT5tTexPZwhrS2hwAvFM,1319
@@ -22,6 +22,6 @@ davidkhala/ai/huggingface/inference.py,sha256=bYN0PtLF2CaIHzdTP4LaTALJhcawvuLnLR
22
22
  davidkhala/ai/openai/__init__.py,sha256=GXzWaw2ER3YFGHG6TPD9SmAHV6Tpsnqxj6tXlaWsrko,1897
23
23
  davidkhala/ai/openai/azure.py,sha256=QR1uZj8qAyhpCjo3Ks5zNV8GfOp3-enyZs6fBvV-MkA,1110
24
24
  davidkhala/ai/openai/native.py,sha256=MB0nDnzCOj_M42RMhdK3HTMVnxGnwpLT2GeLwSrepwI,704
25
- davidkhala_ai-0.1.2.dist-info/METADATA,sha256=QHtyUo2dYlHTg2hpLKgVLGbDNg_z4fTpLesFKUCCxCY,1098
26
- davidkhala_ai-0.1.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
27
- davidkhala_ai-0.1.2.dist-info/RECORD,,
25
+ davidkhala_ai-0.1.4.dist-info/METADATA,sha256=RvHa05xsA2__WejkH8lp5vYqPThvI2Ymj1iqk_5KK4M,1098
26
+ davidkhala_ai-0.1.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
27
+ davidkhala_ai-0.1.4.dist-info/RECORD,,