gnosisllm-knowledge 0.2.0__py3-none-any.whl → 0.3.0__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.
- gnosisllm_knowledge/__init__.py +91 -39
- gnosisllm_knowledge/api/__init__.py +3 -2
- gnosisllm_knowledge/api/knowledge.py +287 -7
- gnosisllm_knowledge/api/memory.py +966 -0
- gnosisllm_knowledge/backends/__init__.py +14 -5
- gnosisllm_knowledge/backends/opensearch/agentic.py +341 -39
- gnosisllm_knowledge/backends/opensearch/config.py +49 -28
- gnosisllm_knowledge/backends/opensearch/indexer.py +1 -0
- gnosisllm_knowledge/backends/opensearch/mappings.py +2 -1
- gnosisllm_knowledge/backends/opensearch/memory/__init__.py +12 -0
- gnosisllm_knowledge/backends/opensearch/memory/client.py +1380 -0
- gnosisllm_knowledge/backends/opensearch/memory/config.py +127 -0
- gnosisllm_knowledge/backends/opensearch/memory/setup.py +322 -0
- gnosisllm_knowledge/backends/opensearch/searcher.py +235 -0
- gnosisllm_knowledge/backends/opensearch/setup.py +308 -148
- gnosisllm_knowledge/cli/app.py +378 -12
- gnosisllm_knowledge/cli/commands/agentic.py +11 -0
- gnosisllm_knowledge/cli/commands/memory.py +723 -0
- gnosisllm_knowledge/cli/commands/setup.py +24 -22
- gnosisllm_knowledge/cli/display/service.py +43 -0
- gnosisllm_knowledge/cli/utils/config.py +58 -0
- gnosisllm_knowledge/core/domain/__init__.py +41 -0
- gnosisllm_knowledge/core/domain/document.py +5 -0
- gnosisllm_knowledge/core/domain/memory.py +440 -0
- gnosisllm_knowledge/core/domain/result.py +11 -3
- gnosisllm_knowledge/core/domain/search.py +2 -0
- gnosisllm_knowledge/core/events/types.py +76 -0
- gnosisllm_knowledge/core/exceptions.py +134 -0
- gnosisllm_knowledge/core/interfaces/__init__.py +17 -0
- gnosisllm_knowledge/core/interfaces/memory.py +524 -0
- gnosisllm_knowledge/core/interfaces/streaming.py +127 -0
- gnosisllm_knowledge/core/streaming/__init__.py +36 -0
- gnosisllm_knowledge/core/streaming/pipeline.py +228 -0
- gnosisllm_knowledge/loaders/base.py +3 -4
- gnosisllm_knowledge/loaders/sitemap.py +129 -1
- gnosisllm_knowledge/loaders/sitemap_streaming.py +258 -0
- gnosisllm_knowledge/services/indexing.py +67 -75
- gnosisllm_knowledge/services/search.py +47 -11
- gnosisllm_knowledge/services/streaming_pipeline.py +302 -0
- {gnosisllm_knowledge-0.2.0.dist-info → gnosisllm_knowledge-0.3.0.dist-info}/METADATA +44 -1
- gnosisllm_knowledge-0.3.0.dist-info/RECORD +77 -0
- gnosisllm_knowledge-0.2.0.dist-info/RECORD +0 -64
- {gnosisllm_knowledge-0.2.0.dist-info → gnosisllm_knowledge-0.3.0.dist-info}/WHEEL +0 -0
- {gnosisllm_knowledge-0.2.0.dist-info → gnosisllm_knowledge-0.3.0.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
"""Streaming indexing pipeline with bounded memory.
|
|
2
|
+
|
|
3
|
+
This module provides the StreamingIndexingPipeline that orchestrates
|
|
4
|
+
the load -> index pipeline with guaranteed bounded memory usage.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
import logging
|
|
10
|
+
import time
|
|
11
|
+
from dataclasses import dataclass, field
|
|
12
|
+
from typing import TYPE_CHECKING, Any
|
|
13
|
+
|
|
14
|
+
from gnosisllm_knowledge.core.domain.document import Document, DocumentStatus
|
|
15
|
+
from gnosisllm_knowledge.core.domain.result import IndexResult
|
|
16
|
+
from gnosisllm_knowledge.core.events.emitter import EventEmitter
|
|
17
|
+
from gnosisllm_knowledge.core.events.types import (
|
|
18
|
+
BatchCompletedEvent,
|
|
19
|
+
StreamingCompletedEvent,
|
|
20
|
+
StreamingProgressEvent,
|
|
21
|
+
)
|
|
22
|
+
from gnosisllm_knowledge.core.streaming.pipeline import PipelineConfig
|
|
23
|
+
|
|
24
|
+
if TYPE_CHECKING:
|
|
25
|
+
from gnosisllm_knowledge.core.interfaces.indexer import IDocumentIndexer
|
|
26
|
+
from gnosisllm_knowledge.loaders.sitemap import SitemapLoader
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@dataclass
|
|
30
|
+
class StreamingProgress:
|
|
31
|
+
"""Progress tracking for streaming operations.
|
|
32
|
+
|
|
33
|
+
Attributes:
|
|
34
|
+
urls_discovered: Total URLs discovered so far.
|
|
35
|
+
urls_processed: URLs that have been fetched and processed.
|
|
36
|
+
documents_indexed: Documents successfully indexed.
|
|
37
|
+
documents_failed: Documents that failed to index.
|
|
38
|
+
current_phase: Current pipeline phase (discovering, fetching, indexing, completed).
|
|
39
|
+
memory_estimate_mb: Estimated current memory usage in MB.
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
urls_discovered: int = 0
|
|
43
|
+
urls_processed: int = 0
|
|
44
|
+
documents_indexed: int = 0
|
|
45
|
+
documents_failed: int = 0
|
|
46
|
+
current_phase: str = "initializing"
|
|
47
|
+
memory_estimate_mb: float = 0.0
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@dataclass
|
|
51
|
+
class StreamingPipelineResult:
|
|
52
|
+
"""Result of a streaming pipeline execution.
|
|
53
|
+
|
|
54
|
+
Attributes:
|
|
55
|
+
success: Whether the pipeline completed successfully.
|
|
56
|
+
indexed_count: Total documents indexed.
|
|
57
|
+
failed_count: Total documents that failed.
|
|
58
|
+
urls_processed: Total URLs processed.
|
|
59
|
+
batches_processed: Number of batches processed.
|
|
60
|
+
duration_ms: Total duration in milliseconds.
|
|
61
|
+
errors: List of errors encountered.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
success: bool
|
|
65
|
+
indexed_count: int = 0
|
|
66
|
+
failed_count: int = 0
|
|
67
|
+
urls_processed: int = 0
|
|
68
|
+
batches_processed: int = 0
|
|
69
|
+
duration_ms: float = 0.0
|
|
70
|
+
errors: list[dict[str, Any]] = field(default_factory=list)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class StreamingIndexingPipeline:
|
|
74
|
+
"""Orchestrates streaming load -> index pipeline with bounded memory.
|
|
75
|
+
|
|
76
|
+
This pipeline ensures:
|
|
77
|
+
1. URLs are discovered and processed in batches
|
|
78
|
+
2. Documents are indexed immediately after fetching
|
|
79
|
+
3. Memory is freed between batches
|
|
80
|
+
4. Progress is tracked and emitted as events
|
|
81
|
+
5. Errors don't stop the entire pipeline
|
|
82
|
+
|
|
83
|
+
Memory Guarantees:
|
|
84
|
+
- URL storage: O(url_batch_size)
|
|
85
|
+
- Document storage: O(index_batch_size)
|
|
86
|
+
- In-flight fetches: O(fetch_concurrency * avg_page_size)
|
|
87
|
+
- Total: Bounded, independent of sitemap size
|
|
88
|
+
|
|
89
|
+
Example:
|
|
90
|
+
```python
|
|
91
|
+
pipeline = StreamingIndexingPipeline(
|
|
92
|
+
loader=sitemap_loader,
|
|
93
|
+
indexer=opensearch_indexer,
|
|
94
|
+
config=PipelineConfig(
|
|
95
|
+
url_batch_size=50,
|
|
96
|
+
fetch_concurrency=10,
|
|
97
|
+
index_batch_size=100,
|
|
98
|
+
),
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
result = await pipeline.execute(
|
|
102
|
+
source="https://example.com/sitemap.xml",
|
|
103
|
+
index_name="knowledge-account123",
|
|
104
|
+
account_id="account123",
|
|
105
|
+
)
|
|
106
|
+
```
|
|
107
|
+
"""
|
|
108
|
+
|
|
109
|
+
def __init__(
|
|
110
|
+
self,
|
|
111
|
+
loader: SitemapLoader,
|
|
112
|
+
indexer: IDocumentIndexer,
|
|
113
|
+
config: PipelineConfig | None = None,
|
|
114
|
+
events: EventEmitter | None = None,
|
|
115
|
+
) -> None:
|
|
116
|
+
"""Initialize the streaming pipeline.
|
|
117
|
+
|
|
118
|
+
Args:
|
|
119
|
+
loader: Sitemap loader instance.
|
|
120
|
+
indexer: Document indexer instance.
|
|
121
|
+
config: Pipeline configuration.
|
|
122
|
+
events: Event emitter for progress events.
|
|
123
|
+
"""
|
|
124
|
+
self._loader = loader
|
|
125
|
+
self._indexer = indexer
|
|
126
|
+
self._config = config or PipelineConfig()
|
|
127
|
+
self._events = events or EventEmitter()
|
|
128
|
+
self._logger = logging.getLogger(__name__)
|
|
129
|
+
self._progress = StreamingProgress()
|
|
130
|
+
|
|
131
|
+
async def execute(
|
|
132
|
+
self,
|
|
133
|
+
source: str,
|
|
134
|
+
index_name: str,
|
|
135
|
+
*,
|
|
136
|
+
account_id: str | None = None,
|
|
137
|
+
collection_id: str | None = None,
|
|
138
|
+
collection_name: str | None = None,
|
|
139
|
+
source_id: str | None = None,
|
|
140
|
+
**options: Any,
|
|
141
|
+
) -> IndexResult:
|
|
142
|
+
"""Execute the streaming pipeline.
|
|
143
|
+
|
|
144
|
+
Args:
|
|
145
|
+
source: Sitemap URL.
|
|
146
|
+
index_name: Target OpenSearch index.
|
|
147
|
+
account_id: For multi-tenancy filtering.
|
|
148
|
+
collection_id: Collection within account.
|
|
149
|
+
collection_name: Collection name for display.
|
|
150
|
+
source_id: Source identifier.
|
|
151
|
+
**options: Additional loader options.
|
|
152
|
+
|
|
153
|
+
Returns:
|
|
154
|
+
Aggregated index result.
|
|
155
|
+
"""
|
|
156
|
+
start_time = time.time()
|
|
157
|
+
self._progress = StreamingProgress(current_phase="starting")
|
|
158
|
+
await self._emit_progress()
|
|
159
|
+
|
|
160
|
+
batch_count = 0
|
|
161
|
+
|
|
162
|
+
# Create index callback that enriches and indexes documents
|
|
163
|
+
async def index_batch(documents: list[Document]) -> IndexResult:
|
|
164
|
+
nonlocal batch_count
|
|
165
|
+
|
|
166
|
+
enriched = [
|
|
167
|
+
self._enrich_document(
|
|
168
|
+
doc,
|
|
169
|
+
source=source,
|
|
170
|
+
account_id=account_id,
|
|
171
|
+
collection_id=collection_id,
|
|
172
|
+
collection_name=collection_name,
|
|
173
|
+
source_id=source_id,
|
|
174
|
+
)
|
|
175
|
+
for doc in documents
|
|
176
|
+
]
|
|
177
|
+
|
|
178
|
+
batch_start = time.time()
|
|
179
|
+
result = await self._indexer.bulk_index(enriched, index_name)
|
|
180
|
+
batch_duration = (time.time() - batch_start) * 1000
|
|
181
|
+
|
|
182
|
+
self._progress.documents_indexed += result.indexed_count
|
|
183
|
+
self._progress.documents_failed += result.failed_count
|
|
184
|
+
self._progress.current_phase = "indexing"
|
|
185
|
+
await self._emit_progress()
|
|
186
|
+
|
|
187
|
+
# Emit batch completed event
|
|
188
|
+
self._events.emit(
|
|
189
|
+
BatchCompletedEvent(
|
|
190
|
+
batch_index=batch_count,
|
|
191
|
+
success_count=result.indexed_count,
|
|
192
|
+
failure_count=result.failed_count,
|
|
193
|
+
duration_ms=batch_duration,
|
|
194
|
+
)
|
|
195
|
+
)
|
|
196
|
+
batch_count += 1
|
|
197
|
+
|
|
198
|
+
return result
|
|
199
|
+
|
|
200
|
+
# Execute streaming load with indexing
|
|
201
|
+
self._progress.current_phase = "processing"
|
|
202
|
+
await self._emit_progress()
|
|
203
|
+
|
|
204
|
+
try:
|
|
205
|
+
result = await self._loader.load_streaming_with_indexing(
|
|
206
|
+
source=source,
|
|
207
|
+
index_callback=index_batch,
|
|
208
|
+
url_batch_size=self._config.url_batch_size,
|
|
209
|
+
doc_batch_size=self._config.index_batch_size,
|
|
210
|
+
config=self._config,
|
|
211
|
+
**options,
|
|
212
|
+
)
|
|
213
|
+
except Exception as e:
|
|
214
|
+
self._logger.exception(f"Streaming pipeline failed: {e}")
|
|
215
|
+
duration_ms = (time.time() - start_time) * 1000
|
|
216
|
+
return IndexResult(
|
|
217
|
+
success=False,
|
|
218
|
+
indexed_count=self._progress.documents_indexed,
|
|
219
|
+
failed_count=self._progress.documents_failed,
|
|
220
|
+
error_message=str(e),
|
|
221
|
+
duration_ms=duration_ms,
|
|
222
|
+
)
|
|
223
|
+
|
|
224
|
+
duration_ms = (time.time() - start_time) * 1000
|
|
225
|
+
self._progress.current_phase = "completed"
|
|
226
|
+
await self._emit_progress()
|
|
227
|
+
|
|
228
|
+
# Emit completion event
|
|
229
|
+
self._events.emit(
|
|
230
|
+
StreamingCompletedEvent(
|
|
231
|
+
total_urls=self._progress.urls_processed,
|
|
232
|
+
total_documents=result.indexed_count + result.failed_count,
|
|
233
|
+
indexed_count=result.indexed_count,
|
|
234
|
+
failed_count=result.failed_count,
|
|
235
|
+
duration_ms=duration_ms,
|
|
236
|
+
)
|
|
237
|
+
)
|
|
238
|
+
|
|
239
|
+
return IndexResult(
|
|
240
|
+
success=result.failed_count == 0,
|
|
241
|
+
indexed_count=result.indexed_count,
|
|
242
|
+
failed_count=result.failed_count,
|
|
243
|
+
errors=result.errors,
|
|
244
|
+
duration_ms=duration_ms,
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
def _enrich_document(
|
|
248
|
+
self,
|
|
249
|
+
doc: Document,
|
|
250
|
+
source: str,
|
|
251
|
+
account_id: str | None,
|
|
252
|
+
collection_id: str | None,
|
|
253
|
+
collection_name: str | None,
|
|
254
|
+
source_id: str | None,
|
|
255
|
+
) -> Document:
|
|
256
|
+
"""Add tenant and source info to document.
|
|
257
|
+
|
|
258
|
+
Args:
|
|
259
|
+
doc: Original document.
|
|
260
|
+
source: Source URL.
|
|
261
|
+
account_id: Account identifier.
|
|
262
|
+
collection_id: Collection identifier.
|
|
263
|
+
collection_name: Collection name for display.
|
|
264
|
+
source_id: Source identifier.
|
|
265
|
+
|
|
266
|
+
Returns:
|
|
267
|
+
New Document with tenant info.
|
|
268
|
+
"""
|
|
269
|
+
return Document(
|
|
270
|
+
content=doc.content,
|
|
271
|
+
source=source,
|
|
272
|
+
doc_id=doc.doc_id,
|
|
273
|
+
url=doc.url,
|
|
274
|
+
title=doc.title,
|
|
275
|
+
account_id=account_id,
|
|
276
|
+
collection_id=collection_id,
|
|
277
|
+
collection_name=collection_name,
|
|
278
|
+
source_id=source_id,
|
|
279
|
+
chunk_index=doc.chunk_index,
|
|
280
|
+
total_chunks=doc.total_chunks,
|
|
281
|
+
parent_doc_id=doc.parent_doc_id,
|
|
282
|
+
status=DocumentStatus.INDEXED,
|
|
283
|
+
metadata=doc.metadata,
|
|
284
|
+
)
|
|
285
|
+
|
|
286
|
+
async def _emit_progress(self) -> None:
|
|
287
|
+
"""Emit progress event."""
|
|
288
|
+
await self._events.emit_async(
|
|
289
|
+
StreamingProgressEvent(
|
|
290
|
+
urls_discovered=self._progress.urls_discovered,
|
|
291
|
+
urls_processed=self._progress.urls_processed,
|
|
292
|
+
documents_indexed=self._progress.documents_indexed,
|
|
293
|
+
documents_failed=self._progress.documents_failed,
|
|
294
|
+
phase=self._progress.current_phase,
|
|
295
|
+
memory_mb=self._progress.memory_estimate_mb,
|
|
296
|
+
)
|
|
297
|
+
)
|
|
298
|
+
|
|
299
|
+
@property
|
|
300
|
+
def progress(self) -> StreamingProgress:
|
|
301
|
+
"""Get current progress."""
|
|
302
|
+
return self._progress
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gnosisllm-knowledge
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Enterprise-grade knowledge loading, indexing, and search for Python
|
|
5
5
|
License: MIT
|
|
6
6
|
Keywords: knowledge-base,rag,semantic-search,vector-search,opensearch,llm,embeddings,enterprise
|
|
@@ -41,6 +41,8 @@ Enterprise-grade knowledge loading, indexing, and semantic search library for Py
|
|
|
41
41
|
|
|
42
42
|
- **Semantic Search**: Vector-based similarity search using OpenAI embeddings
|
|
43
43
|
- **Hybrid Search**: Combine semantic and keyword (BM25) search for best results
|
|
44
|
+
- **Agentic Search**: AI-powered search with reasoning and natural language answers
|
|
45
|
+
- **Agentic Memory**: Conversational memory with automatic fact extraction
|
|
44
46
|
- **Multiple Loaders**: Load content from websites, sitemaps, and files
|
|
45
47
|
- **Intelligent Chunking**: Sentence-aware text splitting with configurable overlap
|
|
46
48
|
- **OpenSearch Backend**: Production-ready with k-NN vector search
|
|
@@ -333,6 +335,47 @@ results = await knowledge.search(
|
|
|
333
335
|
)
|
|
334
336
|
```
|
|
335
337
|
|
|
338
|
+
## Agentic Memory
|
|
339
|
+
|
|
340
|
+
Conversational memory with automatic fact extraction using OpenSearch's ML Memory plugin.
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
# Setup memory connectors
|
|
344
|
+
gnosisllm-knowledge memory setup --openai-key sk-...
|
|
345
|
+
|
|
346
|
+
# Create container and store conversations
|
|
347
|
+
gnosisllm-knowledge memory container create my-memory
|
|
348
|
+
gnosisllm-knowledge memory store <container-id> --file messages.json --user-id alice
|
|
349
|
+
gnosisllm-knowledge memory recall <container-id> "user preferences" --user-id alice
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
```python
|
|
353
|
+
from gnosisllm_knowledge import Memory, MemoryStrategy, StrategyConfig, Message
|
|
354
|
+
|
|
355
|
+
memory = Memory.from_env()
|
|
356
|
+
|
|
357
|
+
# Create container with strategies
|
|
358
|
+
container = await memory.create_container(
|
|
359
|
+
name="agent-memory",
|
|
360
|
+
strategies=[
|
|
361
|
+
StrategyConfig(type=MemoryStrategy.SEMANTIC, namespace=["user_id"]),
|
|
362
|
+
],
|
|
363
|
+
)
|
|
364
|
+
|
|
365
|
+
# Store conversation with fact extraction
|
|
366
|
+
await memory.store(
|
|
367
|
+
container_id=container.id,
|
|
368
|
+
messages=[Message(role="user", content="I prefer dark mode")],
|
|
369
|
+
user_id="alice",
|
|
370
|
+
infer=True,
|
|
371
|
+
)
|
|
372
|
+
|
|
373
|
+
# Recall memories
|
|
374
|
+
result = await memory.recall(container.id, "preferences", user_id="alice")
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
See [docs/memory.md](docs/memory.md) for full documentation.
|
|
378
|
+
|
|
336
379
|
## Event Tracking
|
|
337
380
|
|
|
338
381
|
```python
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
gnosisllm_knowledge/__init__.py,sha256=Egfn6ROa9OttWweCBVocNCUivKwWfdeFEFgpwAoo_ww,4809
|
|
2
|
+
gnosisllm_knowledge/api/__init__.py,sha256=xVG6wMjbFa7_qDVRKlp43O4f0EQmPr9w3pAOGmmh32U,200
|
|
3
|
+
gnosisllm_knowledge/api/knowledge.py,sha256=Ysh6-RAdtkTBsy2V6X1zZN_PFJmyhT0cyvEpUF7-eJA,26817
|
|
4
|
+
gnosisllm_knowledge/api/memory.py,sha256=BrYWS3fCPaymwjzlnLqAKiCrUuMlUDMod-DcrTaarkQ,28926
|
|
5
|
+
gnosisllm_knowledge/backends/__init__.py,sha256=QkVcZbr-u_vDyGiOMs2jrV1oA21VyCLd6g6aJZcSJxk,927
|
|
6
|
+
gnosisllm_knowledge/backends/memory/__init__.py,sha256=Q_2Fh0-Xs1f7CsNn9V7z8NLW0P7F1owmxZQ4k3fTSXo,238
|
|
7
|
+
gnosisllm_knowledge/backends/memory/indexer.py,sha256=R_Yd1gEplzS01o7QfPxjaAZ21VxjfdvatbgrNsyp5lM,10517
|
|
8
|
+
gnosisllm_knowledge/backends/memory/searcher.py,sha256=k6OGtppC-UsHB8aIhlK3wSASVOPEokfe6LLV1jbmE5M,15547
|
|
9
|
+
gnosisllm_knowledge/backends/opensearch/__init__.py,sha256=wwg3QPVVMLkq5qHUGw_9m6gvXO3hxa-xaBj3_BRJlN4,679
|
|
10
|
+
gnosisllm_knowledge/backends/opensearch/agentic.py,sha256=TY5uOdZwnhOowOXEXo0ZLsY-Nb5YxcNtDyGLMbYg9Js,36548
|
|
11
|
+
gnosisllm_knowledge/backends/opensearch/config.py,sha256=9xHMvr5-vnCcGFOPoO2_bbKuB70Gm979BqrhvcKsKm0,8640
|
|
12
|
+
gnosisllm_knowledge/backends/opensearch/indexer.py,sha256=gVLH3F5-iQNAXE3ftlKoADcSWChmjCqI6q9pDIPdPnM,15158
|
|
13
|
+
gnosisllm_knowledge/backends/opensearch/mappings.py,sha256=EQn45YNhCEyOZpJTg1_1wEmLIR9v5Nna5ovK__65G90,8000
|
|
14
|
+
gnosisllm_knowledge/backends/opensearch/memory/__init__.py,sha256=9EganuADfP6-1lky1Mk_oogr2d9pCmOFcNUjO7UMVZo,403
|
|
15
|
+
gnosisllm_knowledge/backends/opensearch/memory/client.py,sha256=ho0Sn1lXK7EDy0RR6HXjTX5pekrfRc7Vuo4YfBiElr4,44636
|
|
16
|
+
gnosisllm_knowledge/backends/opensearch/memory/config.py,sha256=astoJqofwhl4KUZ6vTUG-yiG1h5hfpJjYdsBzhKzx_E,4633
|
|
17
|
+
gnosisllm_knowledge/backends/opensearch/memory/setup.py,sha256=0ILimioesxx2GLQ4I3uCA-Nu9Wy09PI-rSA85t8ssLw,10372
|
|
18
|
+
gnosisllm_knowledge/backends/opensearch/queries.py,sha256=IEZ_teGqc80OFrzD4XIwUArXRre-UhQWIH2oZnRGvC8,13301
|
|
19
|
+
gnosisllm_knowledge/backends/opensearch/searcher.py,sha256=kaMMMziHG006mHrbKBikjjyzDvO4qk_z0VLyjnrKhys,19984
|
|
20
|
+
gnosisllm_knowledge/backends/opensearch/setup.py,sha256=G9G0KZkz_ZynJjRIRWJImLDEFvQQE2wWRJfq_mlfpIs,59483
|
|
21
|
+
gnosisllm_knowledge/chunking/__init__.py,sha256=XKrk04DqwhhPxxP_SLGnQrVUo2fexmvzuEN9YzO4Jxk,225
|
|
22
|
+
gnosisllm_knowledge/chunking/fixed.py,sha256=LXZhRbYbtg4hQzqrAKyGrM_zmDhqJWXDi6cHOiJlGrM,3905
|
|
23
|
+
gnosisllm_knowledge/chunking/sentence.py,sha256=EqY2Y1dpfNK_qukXQC9QYrKN8b1dqyyX9TZN5bUYGqs,7271
|
|
24
|
+
gnosisllm_knowledge/cli/__init__.py,sha256=G8AO-LwNQqXSKZCFxLiXggOQf-xmNITWVs25xWl_-Cg,564
|
|
25
|
+
gnosisllm_knowledge/cli/app.py,sha256=kDhJRtdAOabnFIQw7WjuOJ9p1x2EQ7lq_UL9bWPIjIs,25647
|
|
26
|
+
gnosisllm_knowledge/cli/commands/__init__.py,sha256=TGrGl_AxVVXpAv01iO4JCUtWW8wzSQTBtQFj4vPeE0A,303
|
|
27
|
+
gnosisllm_knowledge/cli/commands/agentic.py,sha256=VKQewzpLPgJ94T3z-CA3lMCwfUBpA1a5Ca5Uv69T_YA,20294
|
|
28
|
+
gnosisllm_knowledge/cli/commands/load.py,sha256=RZhLtw2Ba6LCceLTD665QE4QcOm-HBc9D-lEX1ReGLM,13117
|
|
29
|
+
gnosisllm_knowledge/cli/commands/memory.py,sha256=65a7iVgZuy5Czgq_fhTgRrvSxMv-8JhA77zexUAwm5c,24032
|
|
30
|
+
gnosisllm_knowledge/cli/commands/search.py,sha256=lj3kUXmvSZRA_z8utbN2Ph_2NczOuzGkuxILreJuj_o,15326
|
|
31
|
+
gnosisllm_knowledge/cli/commands/setup.py,sha256=RmTpwW-12AWw6KSrQQl4HrMBwtfcSoBk-RmnApEWvsM,8099
|
|
32
|
+
gnosisllm_knowledge/cli/display/__init__.py,sha256=hLQ3XCBxw8C5WOT-wu1lqFyrD7FJVPHSWXUZM24Qnjc,155
|
|
33
|
+
gnosisllm_knowledge/cli/display/service.py,sha256=Aq2-xSjLtpmRo7K41ca64yHCB338C1r2lb3jLjvKOyI,19226
|
|
34
|
+
gnosisllm_knowledge/cli/utils/__init__.py,sha256=BlzSMhfXM_x9EAv304krVb_DHvdJaKLrlbb716LKkQI,106
|
|
35
|
+
gnosisllm_knowledge/cli/utils/config.py,sha256=qRGz8U7JTglcTybl06Fp7F2GBgGI_5AtpGHlLoMtd8g,9562
|
|
36
|
+
gnosisllm_knowledge/core/__init__.py,sha256=yeZYSnaypTdStzt3_FERALGUgfC5fuudTCGixUm1_z0,1827
|
|
37
|
+
gnosisllm_knowledge/core/domain/__init__.py,sha256=mH5wVrmAXxRkiepW-rsuWtdQjliX_so_-h1Guc5egPI,1750
|
|
38
|
+
gnosisllm_knowledge/core/domain/document.py,sha256=pvhqvLZI9a68aHi5rJSO1hoIKwPnEBsxBmCBuLpgNoM,8056
|
|
39
|
+
gnosisllm_knowledge/core/domain/memory.py,sha256=sDdqX9gf8vdm4UXtQ7RUAzppNXvwqvWrDLisZAB8Fg4,13139
|
|
40
|
+
gnosisllm_knowledge/core/domain/result.py,sha256=W667qa7KLYXr1cDR6-bz4AN4oancLxNnb_CpynP_XJ0,6112
|
|
41
|
+
gnosisllm_knowledge/core/domain/search.py,sha256=340lL4OB_QYrikCVvzK3NTdIA0QGsP8hGWpR5IYBIhM,10733
|
|
42
|
+
gnosisllm_knowledge/core/domain/source.py,sha256=kKmWr3U01sJkfG8jtzAQDzxtVVzUOTSqEJZT5gGlYU8,4493
|
|
43
|
+
gnosisllm_knowledge/core/events/__init__.py,sha256=pqWmPSuZIV3_teyYxGgNOLu8yaEw5jTO7A0tKDTydpE,540
|
|
44
|
+
gnosisllm_knowledge/core/events/emitter.py,sha256=qFANzBtgdnQMVgLFE76rA-4i6Es_7ItaI-JfOl9vrNc,6940
|
|
45
|
+
gnosisllm_knowledge/core/events/types.py,sha256=u3-4Nes1I2V1O-rXRAVFJXN8KM_oGHiq00TPdWjKiQk,8925
|
|
46
|
+
gnosisllm_knowledge/core/exceptions.py,sha256=kjkb3mxpAkq0jYpbJoERHrkwYx88-lA_wUTxTRKkMao,13741
|
|
47
|
+
gnosisllm_knowledge/core/interfaces/__init__.py,sha256=NZQNCTI4xWTnS6RyiHU4POv4RyrtgazQ0XVNDUoeUOs,1169
|
|
48
|
+
gnosisllm_knowledge/core/interfaces/agentic.py,sha256=OrS-3YRJ6Z6j1yAngsAv3B9fN9otmwlEyZ_G_fjDJPY,3600
|
|
49
|
+
gnosisllm_knowledge/core/interfaces/chunker.py,sha256=FUu3B6Ent5Zofs1XLWZ0RqevHBbGd7iNRO7pAg2JqdE,1862
|
|
50
|
+
gnosisllm_knowledge/core/interfaces/fetcher.py,sha256=19u2TKE6rDjX-8l7xIRKUqa6DLmZz_RncPy1p0sN3tk,3318
|
|
51
|
+
gnosisllm_knowledge/core/interfaces/indexer.py,sha256=4a33oyhYetAiQ6TF2u7ICPyjjidGwsrjILJ0i0YZCqY,6166
|
|
52
|
+
gnosisllm_knowledge/core/interfaces/loader.py,sha256=NKq5Yj1Pmbv1I8AUMDtleUCZO5URZFw6kCdx6uLG7Bk,2903
|
|
53
|
+
gnosisllm_knowledge/core/interfaces/memory.py,sha256=xrgPsqSfmj1-Snmyd35b-HOKipI_9N_FWRQklHj6x8I,13057
|
|
54
|
+
gnosisllm_knowledge/core/interfaces/searcher.py,sha256=c76SH2DD3EEVmaD6TuVjZu5hP6HjoyawUoiT9aANZz0,4634
|
|
55
|
+
gnosisllm_knowledge/core/interfaces/setup.py,sha256=9DMKVqoNUrWKbS58QCnfwlGk4sD9R5iGe-WLwlW7z-Q,4457
|
|
56
|
+
gnosisllm_knowledge/core/interfaces/streaming.py,sha256=jR7DGZdY2YJwyZdVxEh8qnst093nGcyrvKzj7QDbAhI,3842
|
|
57
|
+
gnosisllm_knowledge/core/streaming/__init__.py,sha256=-PKIWbSu9bI3X3H8bucjuoqBGBiH0UOvM9OSn9dh1Rs,814
|
|
58
|
+
gnosisllm_knowledge/core/streaming/pipeline.py,sha256=H3_9gAvemZp5AdsbrZ5OTbY9aDAfwsl58eq7vOhA09k,6429
|
|
59
|
+
gnosisllm_knowledge/fetchers/__init__.py,sha256=CiupP4NdIPzWme6SKp--a_wDX1qAy-QBUO_bjoVDFBQ,393
|
|
60
|
+
gnosisllm_knowledge/fetchers/config.py,sha256=msUHhTzCGa-cASzoXeAhXFNrDpY9E1XaDo_gqs2CtrU,2611
|
|
61
|
+
gnosisllm_knowledge/fetchers/http.py,sha256=nQjH1nKTIR65tmbfW6RWaP3pR5JJe4j33cTzSBWHM-E,5133
|
|
62
|
+
gnosisllm_knowledge/fetchers/neoreader.py,sha256=Gc5SqHr9e3zvP9TE_xHmW_iwXcYq0UqDCzob7frkaqM,6637
|
|
63
|
+
gnosisllm_knowledge/loaders/__init__.py,sha256=4XlrhFapi9uWsHUAG2eeQEfc47T75a9GRUXde1dmom4,387
|
|
64
|
+
gnosisllm_knowledge/loaders/base.py,sha256=bqFzWFD-jeBXdovAuiRUgLKvl5ExaBoDrS0L9e5JhqY,13020
|
|
65
|
+
gnosisllm_knowledge/loaders/factory.py,sha256=gmUqYT3yTijMLP0XRldFWlgLFWdmdvKrj5WvD3RMZw0,6374
|
|
66
|
+
gnosisllm_knowledge/loaders/sitemap.py,sha256=2VZ7iSYjjQ_od-FuHl9x6dFB5rj4XToi6RWfFR45O4Y,14349
|
|
67
|
+
gnosisllm_knowledge/loaders/sitemap_streaming.py,sha256=KkkIg_oJxJrjQP88kS_jvqQvCShGE9vTGVVeiAr0VDE,8728
|
|
68
|
+
gnosisllm_knowledge/loaders/website.py,sha256=i54S7X0wTYNw9jJQfaoWFqMkGJkbAJeBv-OFBNjPQ_g,1587
|
|
69
|
+
gnosisllm_knowledge/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
70
|
+
gnosisllm_knowledge/services/__init__.py,sha256=qOn1CjsB25UQ2K1TQIGMBe9-CUrGxAKhBrNh9Awo8n8,273
|
|
71
|
+
gnosisllm_knowledge/services/indexing.py,sha256=7SLn0jOcT8g1hlB758HnLkMjsFKxtIKXsXQj_8eo0Q8,12310
|
|
72
|
+
gnosisllm_knowledge/services/search.py,sha256=9GCI7TyC43Yd2bMc4WaAuHQy_q5fSXXPruqHGvWo4LI,11306
|
|
73
|
+
gnosisllm_knowledge/services/streaming_pipeline.py,sha256=TyzKa5H_sIVNVFHivu4EIBgCtMq_kkmgBMsgvqG4cq0,10056
|
|
74
|
+
gnosisllm_knowledge-0.3.0.dist-info/METADATA,sha256=LrSUd1lpnaqEGJ2BwGrjNUMA0uDhdf8B5YbtYHjNDtw,15466
|
|
75
|
+
gnosisllm_knowledge-0.3.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
76
|
+
gnosisllm_knowledge-0.3.0.dist-info/entry_points.txt,sha256=-4wtWCTX7bT8WessWJyqfkQ99-2aCVuSoTL1S_QpaOo,68
|
|
77
|
+
gnosisllm_knowledge-0.3.0.dist-info/RECORD,,
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
gnosisllm_knowledge/__init__.py,sha256=4pqB289D-9CG7nTnzLfGLwZFTkmnl9REtOAhyDhKE-g,3675
|
|
2
|
-
gnosisllm_knowledge/api/__init__.py,sha256=YOiYXDvA1UPFKpZve_F-wKxN_NNyyiftHEzqsYmRd0I,129
|
|
3
|
-
gnosisllm_knowledge/api/knowledge.py,sha256=on00xHGBe80xq1q2qtmAFTLrdeWGRUKGP8EUiTKVk0o,16791
|
|
4
|
-
gnosisllm_knowledge/backends/__init__.py,sha256=8O0Lsi7gDVbviUmHFjy2rV4eZ2R354Amq-G2EL2eZtk,708
|
|
5
|
-
gnosisllm_knowledge/backends/memory/__init__.py,sha256=Q_2Fh0-Xs1f7CsNn9V7z8NLW0P7F1owmxZQ4k3fTSXo,238
|
|
6
|
-
gnosisllm_knowledge/backends/memory/indexer.py,sha256=R_Yd1gEplzS01o7QfPxjaAZ21VxjfdvatbgrNsyp5lM,10517
|
|
7
|
-
gnosisllm_knowledge/backends/memory/searcher.py,sha256=k6OGtppC-UsHB8aIhlK3wSASVOPEokfe6LLV1jbmE5M,15547
|
|
8
|
-
gnosisllm_knowledge/backends/opensearch/__init__.py,sha256=wwg3QPVVMLkq5qHUGw_9m6gvXO3hxa-xaBj3_BRJlN4,679
|
|
9
|
-
gnosisllm_knowledge/backends/opensearch/agentic.py,sha256=UJdiVDaxQARigOQz0cVfPrduxF8Oa7EH96lorjwji98,25462
|
|
10
|
-
gnosisllm_knowledge/backends/opensearch/config.py,sha256=P30mOAVpo4bEKNHHP04lX2ttzNXgDbu1i-SfobcURNk,7256
|
|
11
|
-
gnosisllm_knowledge/backends/opensearch/indexer.py,sha256=fkfpCwg7Ka2UwDl2L0V1z9sXlvnQbyYMiFeKk1Q1D1Q,15101
|
|
12
|
-
gnosisllm_knowledge/backends/opensearch/mappings.py,sha256=ssev3HFLf82lB1guzqZ0iDQE1C6ppvG1HNGVjG4vwAU,7873
|
|
13
|
-
gnosisllm_knowledge/backends/opensearch/queries.py,sha256=IEZ_teGqc80OFrzD4XIwUArXRre-UhQWIH2oZnRGvC8,13301
|
|
14
|
-
gnosisllm_knowledge/backends/opensearch/searcher.py,sha256=j6j0kzLSxgDRCk1fkqZ642rAXONLa-hnzZr1qEQ1CKI,11594
|
|
15
|
-
gnosisllm_knowledge/backends/opensearch/setup.py,sha256=mZoHBxMK_WZA63F5PviLvGLeH8CqmAn9XM0FnuJXfrQ,52319
|
|
16
|
-
gnosisllm_knowledge/chunking/__init__.py,sha256=XKrk04DqwhhPxxP_SLGnQrVUo2fexmvzuEN9YzO4Jxk,225
|
|
17
|
-
gnosisllm_knowledge/chunking/fixed.py,sha256=LXZhRbYbtg4hQzqrAKyGrM_zmDhqJWXDi6cHOiJlGrM,3905
|
|
18
|
-
gnosisllm_knowledge/chunking/sentence.py,sha256=EqY2Y1dpfNK_qukXQC9QYrKN8b1dqyyX9TZN5bUYGqs,7271
|
|
19
|
-
gnosisllm_knowledge/cli/__init__.py,sha256=G8AO-LwNQqXSKZCFxLiXggOQf-xmNITWVs25xWl_-Cg,564
|
|
20
|
-
gnosisllm_knowledge/cli/app.py,sha256=4Nm5ccxjNHQw9jy9VH7EJ7-rn138i_fPU1yzaef8ELE,15132
|
|
21
|
-
gnosisllm_knowledge/cli/commands/__init__.py,sha256=TGrGl_AxVVXpAv01iO4JCUtWW8wzSQTBtQFj4vPeE0A,303
|
|
22
|
-
gnosisllm_knowledge/cli/commands/agentic.py,sha256=XGZyDKu2TkNNhetzbDIp5zFbBeLwgSyfFfR3VZgZRQM,19836
|
|
23
|
-
gnosisllm_knowledge/cli/commands/load.py,sha256=RZhLtw2Ba6LCceLTD665QE4QcOm-HBc9D-lEX1ReGLM,13117
|
|
24
|
-
gnosisllm_knowledge/cli/commands/search.py,sha256=lj3kUXmvSZRA_z8utbN2Ph_2NczOuzGkuxILreJuj_o,15326
|
|
25
|
-
gnosisllm_knowledge/cli/commands/setup.py,sha256=7NtGGulAggVVQVvzcDq-YLPZlqpGtdKDnYVXd1KPpiQ,7596
|
|
26
|
-
gnosisllm_knowledge/cli/display/__init__.py,sha256=hLQ3XCBxw8C5WOT-wu1lqFyrD7FJVPHSWXUZM24Qnjc,155
|
|
27
|
-
gnosisllm_knowledge/cli/display/service.py,sha256=klGJtc-w7LhNWUaG530QQIazc6c5t8laIM6bnwdyhlg,17537
|
|
28
|
-
gnosisllm_knowledge/cli/utils/__init__.py,sha256=BlzSMhfXM_x9EAv304krVb_DHvdJaKLrlbb716LKkQI,106
|
|
29
|
-
gnosisllm_knowledge/cli/utils/config.py,sha256=8iGzJfInv83lucAHSDfxA5wbTIzh9MlqB2-xa4vcwJg,7292
|
|
30
|
-
gnosisllm_knowledge/core/__init__.py,sha256=yeZYSnaypTdStzt3_FERALGUgfC5fuudTCGixUm1_z0,1827
|
|
31
|
-
gnosisllm_knowledge/core/domain/__init__.py,sha256=15IWkFNV-VKQnInFxMtY4FYh7pNmjYXDq4MPpSsAoPk,938
|
|
32
|
-
gnosisllm_knowledge/core/domain/document.py,sha256=FYvM4Vi1DQeDIq4OEY94dX9eNMpQCmkDQRHkyYqq_WY,7765
|
|
33
|
-
gnosisllm_knowledge/core/domain/result.py,sha256=xyPfselaG7EMhvmcYjepFOEseM4Mfc15Q1Ciq7KxQFE,5843
|
|
34
|
-
gnosisllm_knowledge/core/domain/search.py,sha256=uMJZhGCQ_kS_R5kb1hN5VNEyGbWkuRL_ON_BR4BoqSM,10569
|
|
35
|
-
gnosisllm_knowledge/core/domain/source.py,sha256=kKmWr3U01sJkfG8jtzAQDzxtVVzUOTSqEJZT5gGlYU8,4493
|
|
36
|
-
gnosisllm_knowledge/core/events/__init__.py,sha256=pqWmPSuZIV3_teyYxGgNOLu8yaEw5jTO7A0tKDTydpE,540
|
|
37
|
-
gnosisllm_knowledge/core/events/emitter.py,sha256=qFANzBtgdnQMVgLFE76rA-4i6Es_7ItaI-JfOl9vrNc,6940
|
|
38
|
-
gnosisllm_knowledge/core/events/types.py,sha256=UtmCxkhSfgpHaeFtl43aarmw-eg84KdLuXMBAttICh0,6636
|
|
39
|
-
gnosisllm_knowledge/core/exceptions.py,sha256=fOnE_w2fqX6uS7PGkyXJxiIWcySXpRhfQtUJVA4AFdw,10367
|
|
40
|
-
gnosisllm_knowledge/core/interfaces/__init__.py,sha256=LpBUW0ABmIMUscNIaX-dVkkarqK2pXr0Gf1rg0TSrtU,775
|
|
41
|
-
gnosisllm_knowledge/core/interfaces/agentic.py,sha256=OrS-3YRJ6Z6j1yAngsAv3B9fN9otmwlEyZ_G_fjDJPY,3600
|
|
42
|
-
gnosisllm_knowledge/core/interfaces/chunker.py,sha256=FUu3B6Ent5Zofs1XLWZ0RqevHBbGd7iNRO7pAg2JqdE,1862
|
|
43
|
-
gnosisllm_knowledge/core/interfaces/fetcher.py,sha256=19u2TKE6rDjX-8l7xIRKUqa6DLmZz_RncPy1p0sN3tk,3318
|
|
44
|
-
gnosisllm_knowledge/core/interfaces/indexer.py,sha256=4a33oyhYetAiQ6TF2u7ICPyjjidGwsrjILJ0i0YZCqY,6166
|
|
45
|
-
gnosisllm_knowledge/core/interfaces/loader.py,sha256=NKq5Yj1Pmbv1I8AUMDtleUCZO5URZFw6kCdx6uLG7Bk,2903
|
|
46
|
-
gnosisllm_knowledge/core/interfaces/searcher.py,sha256=c76SH2DD3EEVmaD6TuVjZu5hP6HjoyawUoiT9aANZz0,4634
|
|
47
|
-
gnosisllm_knowledge/core/interfaces/setup.py,sha256=9DMKVqoNUrWKbS58QCnfwlGk4sD9R5iGe-WLwlW7z-Q,4457
|
|
48
|
-
gnosisllm_knowledge/fetchers/__init__.py,sha256=CiupP4NdIPzWme6SKp--a_wDX1qAy-QBUO_bjoVDFBQ,393
|
|
49
|
-
gnosisllm_knowledge/fetchers/config.py,sha256=msUHhTzCGa-cASzoXeAhXFNrDpY9E1XaDo_gqs2CtrU,2611
|
|
50
|
-
gnosisllm_knowledge/fetchers/http.py,sha256=nQjH1nKTIR65tmbfW6RWaP3pR5JJe4j33cTzSBWHM-E,5133
|
|
51
|
-
gnosisllm_knowledge/fetchers/neoreader.py,sha256=Gc5SqHr9e3zvP9TE_xHmW_iwXcYq0UqDCzob7frkaqM,6637
|
|
52
|
-
gnosisllm_knowledge/loaders/__init__.py,sha256=4XlrhFapi9uWsHUAG2eeQEfc47T75a9GRUXde1dmom4,387
|
|
53
|
-
gnosisllm_knowledge/loaders/base.py,sha256=T5m0zrtn-4lA3nYR6mzswQfPwCnYiRhVogzNBvYK2xA,13089
|
|
54
|
-
gnosisllm_knowledge/loaders/factory.py,sha256=gmUqYT3yTijMLP0XRldFWlgLFWdmdvKrj5WvD3RMZw0,6374
|
|
55
|
-
gnosisllm_knowledge/loaders/sitemap.py,sha256=sbsLYs_EugwJRWXOOawpCy7iB2lu46ZW9_3eNymp33I,9524
|
|
56
|
-
gnosisllm_knowledge/loaders/website.py,sha256=i54S7X0wTYNw9jJQfaoWFqMkGJkbAJeBv-OFBNjPQ_g,1587
|
|
57
|
-
gnosisllm_knowledge/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
|
-
gnosisllm_knowledge/services/__init__.py,sha256=qOn1CjsB25UQ2K1TQIGMBe9-CUrGxAKhBrNh9Awo8n8,273
|
|
59
|
-
gnosisllm_knowledge/services/indexing.py,sha256=ZVDDV2_Zlv6zmCWg-VSNeczieR7LyNaqzXcaFP-uvsE,12471
|
|
60
|
-
gnosisllm_knowledge/services/search.py,sha256=ft8Q7rtRKqXVZ0c_bVqa01jDaV5UQF51LnrY2ICfC1Q,10156
|
|
61
|
-
gnosisllm_knowledge-0.2.0.dist-info/METADATA,sha256=Q5bOjQAt93BXqPFdSF_3XlZh_6ystmXCX8-hcSIuwpg,14152
|
|
62
|
-
gnosisllm_knowledge-0.2.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
63
|
-
gnosisllm_knowledge-0.2.0.dist-info/entry_points.txt,sha256=-4wtWCTX7bT8WessWJyqfkQ99-2aCVuSoTL1S_QpaOo,68
|
|
64
|
-
gnosisllm_knowledge-0.2.0.dist-info/RECORD,,
|
|
File without changes
|
{gnosisllm_knowledge-0.2.0.dist-info → gnosisllm_knowledge-0.3.0.dist-info}/entry_points.txt
RENAMED
|
File without changes
|