langroid 0.1.251__py3-none-any.whl → 0.1.253__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.
- langroid/__init__.py +16 -15
- langroid/agent/__init__.py +1 -0
- langroid/agent/base.py +11 -1
- langroid/agent/callbacks/chainlit.py +5 -12
- langroid/agent/special/__init__.py +3 -2
- langroid/agent/special/doc_chat_agent.py +36 -56
- langroid/agent/special/neo4j/csv_kg_chat.py +2 -2
- langroid/agent/special/sql/__init__.py +1 -2
- langroid/agent/special/sql/sql_chat_agent.py +10 -4
- langroid/agent/special/sql/utils/__init__.py +4 -5
- langroid/agent/special/sql/utils/description_extractors.py +7 -2
- langroid/agent/special/sql/utils/populate_metadata.py +6 -1
- langroid/agent/special/table_chat_agent.py +2 -2
- langroid/agent/task.py +25 -8
- langroid/agent/tool_message.py +14 -3
- langroid/agent/tools/__init__.py +2 -3
- langroid/agent/tools/duckduckgo_search_tool.py +2 -2
- langroid/agent/tools/google_search_tool.py +2 -2
- langroid/agent/tools/metaphor_search_tool.py +2 -2
- langroid/agent/tools/retrieval_tool.py +2 -2
- langroid/agent/tools/run_python_code.py +2 -2
- langroid/agent/tools/segment_extract_tool.py +2 -2
- langroid/cachedb/base.py +10 -2
- langroid/cachedb/momento_cachedb.py +10 -4
- langroid/cachedb/redis_cachedb.py +2 -3
- langroid/embedding_models/__init__.py +1 -0
- langroid/exceptions.py +57 -0
- langroid/language_models/__init__.py +1 -0
- langroid/language_models/base.py +2 -3
- langroid/language_models/openai_gpt.py +15 -14
- langroid/language_models/prompt_formatter/__init__.py +4 -3
- langroid/parsing/document_parser.py +20 -4
- langroid/parsing/parser.pyi +56 -0
- langroid/utils/logging.py +7 -3
- langroid/utils/output/__init__.py +1 -2
- langroid/utils/output/citations.py +41 -0
- langroid/utils/output/printing.py +7 -2
- langroid/vector_store/__init__.py +33 -17
- langroid/vector_store/chromadb.py +2 -8
- langroid/vector_store/lancedb.py +36 -5
- langroid/vector_store/meilisearch.py +21 -11
- langroid/vector_store/momento.py +31 -14
- {langroid-0.1.251.dist-info → langroid-0.1.253.dist-info}/METADATA +31 -29
- {langroid-0.1.251.dist-info → langroid-0.1.253.dist-info}/RECORD +46 -44
- {langroid-0.1.251.dist-info → langroid-0.1.253.dist-info}/LICENSE +0 -0
- {langroid-0.1.251.dist-info → langroid-0.1.253.dist-info}/WHEEL +0 -0
@@ -7,16 +7,21 @@ Note that what we call "Collection" in Langroid is referred to as
|
|
7
7
|
but for uniformity we use the Langroid terminology here.
|
8
8
|
"""
|
9
9
|
|
10
|
+
from __future__ import annotations
|
11
|
+
|
10
12
|
import asyncio
|
11
13
|
import logging
|
12
14
|
import os
|
13
|
-
from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple
|
15
|
+
from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Sequence, Tuple
|
14
16
|
|
15
|
-
import meilisearch_python_sdk as meilisearch
|
16
17
|
from dotenv import load_dotenv
|
17
|
-
from meilisearch_python_sdk.index import AsyncIndex
|
18
|
-
from meilisearch_python_sdk.models.documents import DocumentsInfo
|
19
18
|
|
19
|
+
if TYPE_CHECKING:
|
20
|
+
from meilisearch_python_sdk.index import AsyncIndex
|
21
|
+
from meilisearch_python_sdk.models.documents import DocumentsInfo
|
22
|
+
|
23
|
+
|
24
|
+
from langroid.exceptions import LangroidImportError
|
20
25
|
from langroid.mytypes import DocMetaData, Document
|
21
26
|
from langroid.utils.configuration import settings
|
22
27
|
from langroid.vector_store.base import VectorStore, VectorStoreConfig
|
@@ -34,6 +39,11 @@ class MeiliSearchConfig(VectorStoreConfig):
|
|
34
39
|
class MeiliSearch(VectorStore):
|
35
40
|
def __init__(self, config: MeiliSearchConfig = MeiliSearchConfig()):
|
36
41
|
super().__init__(config)
|
42
|
+
try:
|
43
|
+
import meilisearch_python_sdk as meilisearch
|
44
|
+
except ImportError:
|
45
|
+
raise LangroidImportError("meilisearch", "meilisearch")
|
46
|
+
|
37
47
|
self.config: MeiliSearchConfig = config
|
38
48
|
self.host = config.host
|
39
49
|
self.port = config.port
|
@@ -98,12 +108,12 @@ class MeiliSearch(VectorStore):
|
|
98
108
|
async def _async_get_indexes(self) -> List[AsyncIndex]:
|
99
109
|
async with self.client() as client:
|
100
110
|
indexes = await client.get_indexes(limit=10_000)
|
101
|
-
return [] if indexes is None else indexes
|
111
|
+
return [] if indexes is None else indexes # type: ignore
|
102
112
|
|
103
|
-
async def _async_get_index(self, index_uid: str) -> AsyncIndex:
|
113
|
+
async def _async_get_index(self, index_uid: str) -> "AsyncIndex":
|
104
114
|
async with self.client() as client:
|
105
115
|
index = await client.get_index(index_uid)
|
106
|
-
return index
|
116
|
+
return index # type: ignore
|
107
117
|
|
108
118
|
def list_collections(self, empty: bool = False) -> List[str]:
|
109
119
|
"""
|
@@ -116,7 +126,7 @@ class MeiliSearch(VectorStore):
|
|
116
126
|
else:
|
117
127
|
return [ind.uid for ind in indexes]
|
118
128
|
|
119
|
-
async def _async_create_index(self, collection_name: str) -> AsyncIndex:
|
129
|
+
async def _async_create_index(self, collection_name: str) -> "AsyncIndex":
|
120
130
|
async with self.client() as client:
|
121
131
|
index = await client.create_index(
|
122
132
|
uid=collection_name,
|
@@ -128,7 +138,7 @@ class MeiliSearch(VectorStore):
|
|
128
138
|
"""Delete index if it exists. Returns True iff index was deleted"""
|
129
139
|
async with self.client() as client:
|
130
140
|
result = await client.delete_index_if_exists(uid=collection_name)
|
131
|
-
return result
|
141
|
+
return result # type: ignore
|
132
142
|
|
133
143
|
def create_collection(self, collection_name: str, replace: bool = False) -> None:
|
134
144
|
"""
|
@@ -198,7 +208,7 @@ class MeiliSearch(VectorStore):
|
|
198
208
|
except ValueError:
|
199
209
|
return id
|
200
210
|
|
201
|
-
async def _async_get_documents(self, where: str = "") -> DocumentsInfo:
|
211
|
+
async def _async_get_documents(self, where: str = "") -> "DocumentsInfo":
|
202
212
|
if self.config.collection_name is None:
|
203
213
|
raise ValueError("No collection name set, cannot retrieve docs")
|
204
214
|
filter = [] if where is None else where
|
@@ -258,7 +268,7 @@ class MeiliSearch(VectorStore):
|
|
258
268
|
show_ranking_score=True,
|
259
269
|
filter=filter,
|
260
270
|
)
|
261
|
-
return results.hits
|
271
|
+
return results.hits # type: ignore
|
262
272
|
|
263
273
|
def similar_texts_with_scores(
|
264
274
|
self,
|
langroid/vector_store/momento.py
CHANGED
@@ -3,23 +3,34 @@ Momento Vector Index.
|
|
3
3
|
https://docs.momentohq.com/vector-index/develop/api-reference
|
4
4
|
"""
|
5
5
|
|
6
|
+
from __future__ import annotations
|
7
|
+
|
6
8
|
import logging
|
7
9
|
import os
|
8
10
|
from typing import List, Optional, Sequence, Tuple, no_type_check
|
9
11
|
|
10
|
-
import momento.responses.vector_index as mvi_response
|
11
12
|
from dotenv import load_dotenv
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
)
|
13
|
+
|
14
|
+
from langroid.exceptions import LangroidImportError
|
15
|
+
|
16
|
+
try:
|
17
|
+
import momento.responses.vector_index as mvi_response
|
18
|
+
from momento import (
|
19
|
+
# PreviewVectorIndexClientAsync,
|
20
|
+
CredentialProvider,
|
21
|
+
PreviewVectorIndexClient,
|
22
|
+
VectorIndexConfigurations,
|
23
|
+
)
|
24
|
+
from momento.requests.vector_index import (
|
25
|
+
ALL_METADATA,
|
26
|
+
Item,
|
27
|
+
SimilarityMetric,
|
28
|
+
)
|
29
|
+
|
30
|
+
has_momento = True
|
31
|
+
except ImportError:
|
32
|
+
has_momento = False
|
33
|
+
|
23
34
|
|
24
35
|
from langroid.embedding_models.base import (
|
25
36
|
EmbeddingModel,
|
@@ -41,12 +52,14 @@ class MomentoVIConfig(VectorStoreConfig):
|
|
41
52
|
cloud: bool = True
|
42
53
|
collection_name: str | None = "temp"
|
43
54
|
embedding: EmbeddingModelsConfig = OpenAIEmbeddingsConfig()
|
44
|
-
distance: SimilarityMetric = SimilarityMetric.COSINE_SIMILARITY
|
45
55
|
|
46
56
|
|
47
57
|
class MomentoVI(VectorStore):
|
48
58
|
def __init__(self, config: MomentoVIConfig = MomentoVIConfig()):
|
49
59
|
super().__init__(config)
|
60
|
+
if not has_momento:
|
61
|
+
raise LangroidImportError("momento", "momento")
|
62
|
+
self.distance = SimilarityMetric.COSINE_SIMILARITY
|
50
63
|
self.config: MomentoVIConfig = config
|
51
64
|
emb_model = EmbeddingModel.create(config.embedding)
|
52
65
|
self.embedding_fn: EmbeddingFunction = emb_model.embedding_fn()
|
@@ -114,6 +127,8 @@ class MomentoVI(VectorStore):
|
|
114
127
|
Args:
|
115
128
|
empty (bool, optional): Whether to include empty collections.
|
116
129
|
"""
|
130
|
+
if not has_momento:
|
131
|
+
raise LangroidImportError("momento", "momento")
|
117
132
|
response = self.client.list_indexes()
|
118
133
|
if isinstance(response, mvi_response.ListIndexes.Success):
|
119
134
|
return [ind.name for ind in response.indexes]
|
@@ -131,11 +146,13 @@ class MomentoVI(VectorStore):
|
|
131
146
|
replace (bool): Whether to replace an existing collection
|
132
147
|
with the same name. Defaults to False.
|
133
148
|
"""
|
149
|
+
if not has_momento:
|
150
|
+
raise LangroidImportError("momento", "momento")
|
134
151
|
self.config.collection_name = collection_name
|
135
152
|
response = self.client.create_index(
|
136
153
|
index_name=collection_name,
|
137
154
|
num_dimensions=self.embedding_dim,
|
138
|
-
similarity_metric=self.
|
155
|
+
similarity_metric=self.distance,
|
139
156
|
)
|
140
157
|
if isinstance(response, mvi_response.CreateIndex.Success):
|
141
158
|
logger.info(f"Created collection {collection_name}")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: langroid
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.253
|
4
4
|
Summary: Harness LLMs with Multi-Agent Programming
|
5
5
|
License: MIT
|
6
6
|
Author: Prasad Chalasani
|
@@ -13,18 +13,21 @@ Classifier: Programming Language :: Python :: 3.11
|
|
13
13
|
Provides-Extra: chainlit
|
14
14
|
Provides-Extra: chromadb
|
15
15
|
Provides-Extra: hf-embeddings
|
16
|
+
Provides-Extra: lancedb
|
16
17
|
Provides-Extra: litellm
|
18
|
+
Provides-Extra: meilisearch
|
17
19
|
Provides-Extra: metaphor
|
18
20
|
Provides-Extra: mkdocs
|
21
|
+
Provides-Extra: momento
|
19
22
|
Provides-Extra: mysql
|
20
23
|
Provides-Extra: neo4j
|
24
|
+
Provides-Extra: pdf-parsers
|
21
25
|
Provides-Extra: postgres
|
26
|
+
Provides-Extra: sql
|
22
27
|
Provides-Extra: transformers
|
23
28
|
Provides-Extra: unstructured
|
24
29
|
Requires-Dist: aiohttp (>=3.9.1,<4.0.0)
|
25
30
|
Requires-Dist: async-generator (>=1.10,<2.0)
|
26
|
-
Requires-Dist: autopep8 (>=2.0.2,<3.0.0)
|
27
|
-
Requires-Dist: black[jupyter] (>=24.3.0,<25.0.0)
|
28
31
|
Requires-Dist: bs4 (>=0.0.1,<0.0.2)
|
29
32
|
Requires-Dist: chainlit (>=1.0.400,<2.0.0) ; extra == "chainlit"
|
30
33
|
Requires-Dist: chromadb (>=0.4.21,<=0.4.23) ; extra == "chromadb"
|
@@ -34,7 +37,6 @@ Requires-Dist: duckduckgo-search (>=6.0.0,<7.0.0)
|
|
34
37
|
Requires-Dist: faker (>=18.9.0,<19.0.0)
|
35
38
|
Requires-Dist: fakeredis (>=2.12.1,<3.0.0)
|
36
39
|
Requires-Dist: fire (>=0.5.0,<0.6.0)
|
37
|
-
Requires-Dist: flake8 (>=6.0.0,<7.0.0)
|
38
40
|
Requires-Dist: google-api-python-client (>=2.95.0,<3.0.0)
|
39
41
|
Requires-Dist: google-generativeai (>=0.5.2,<0.6.0)
|
40
42
|
Requires-Dist: groq (>=0.5.0,<0.6.0)
|
@@ -42,11 +44,11 @@ Requires-Dist: grpcio (>=1.62.1,<2.0.0)
|
|
42
44
|
Requires-Dist: halo (>=0.0.31,<0.0.32)
|
43
45
|
Requires-Dist: huggingface-hub (>=0.21.2,<0.22.0) ; extra == "transformers"
|
44
46
|
Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
|
45
|
-
Requires-Dist: lancedb (>=0.6.2,<0.7.0)
|
47
|
+
Requires-Dist: lancedb (>=0.6.2,<0.7.0) ; extra == "lancedb"
|
46
48
|
Requires-Dist: litellm (>=1.30.1,<2.0.0) ; extra == "litellm"
|
47
49
|
Requires-Dist: lxml (>=4.9.3,<5.0.0)
|
48
|
-
Requires-Dist: meilisearch (>=0.28.3,<0.29.0)
|
49
|
-
Requires-Dist: meilisearch-python-sdk (>=2.2.3,<3.0.0)
|
50
|
+
Requires-Dist: meilisearch (>=0.28.3,<0.29.0) ; extra == "meilisearch"
|
51
|
+
Requires-Dist: meilisearch-python-sdk (>=2.2.3,<3.0.0) ; extra == "meilisearch"
|
50
52
|
Requires-Dist: metaphor-python (>=0.1.23,<0.2.0) ; extra == "metaphor"
|
51
53
|
Requires-Dist: mkdocs (>=1.4.2,<2.0.0) ; extra == "mkdocs"
|
52
54
|
Requires-Dist: mkdocs-awesome-pages-plugin (>=2.8.0,<3.0.0) ; extra == "mkdocs"
|
@@ -57,32 +59,26 @@ Requires-Dist: mkdocs-material (>=9.1.5,<10.0.0) ; extra == "mkdocs"
|
|
57
59
|
Requires-Dist: mkdocs-rss-plugin (>=1.8.0,<2.0.0) ; extra == "mkdocs"
|
58
60
|
Requires-Dist: mkdocs-section-index (>=0.3.5,<0.4.0) ; extra == "mkdocs"
|
59
61
|
Requires-Dist: mkdocstrings[python] (>=0.21.2,<0.22.0) ; extra == "mkdocs"
|
60
|
-
Requires-Dist: momento (>=1.10.2,<2.0.0)
|
61
|
-
Requires-Dist: mypy (>=1.7.0,<2.0.0)
|
62
|
+
Requires-Dist: momento (>=1.10.2,<2.0.0) ; extra == "momento"
|
62
63
|
Requires-Dist: neo4j (>=5.14.1,<6.0.0) ; extra == "neo4j"
|
63
64
|
Requires-Dist: nest-asyncio (>=1.6.0,<2.0.0)
|
64
65
|
Requires-Dist: nltk (>=3.8.1,<4.0.0)
|
65
|
-
Requires-Dist: onnxruntime (
|
66
|
+
Requires-Dist: onnxruntime (>=1.16.1,<2.0.0)
|
66
67
|
Requires-Dist: openai (>=1.14.0,<2.0.0)
|
67
68
|
Requires-Dist: pandas (>=2.0.3,<3.0.0)
|
68
|
-
Requires-Dist: pdf2image (>=1.17.0,<2.0.0)
|
69
|
+
Requires-Dist: pdf2image (>=1.17.0,<2.0.0) ; extra == "pdf-parsers"
|
69
70
|
Requires-Dist: pdfplumber (>=0.10.2,<0.11.0)
|
70
|
-
Requires-Dist: pre-commit (>=3.3.2,<4.0.0)
|
71
71
|
Requires-Dist: prettytable (>=3.8.0,<4.0.0)
|
72
|
-
Requires-Dist: psycopg2 (>=2.9.7,<3.0.0) ; extra == "postgres"
|
73
|
-
Requires-Dist: pyarrow (==15.0.0)
|
72
|
+
Requires-Dist: psycopg2 (>=2.9.7,<3.0.0) ; extra == "postgres" or extra == "sql"
|
73
|
+
Requires-Dist: pyarrow (==15.0.0) ; extra == "lancedb"
|
74
74
|
Requires-Dist: pydantic (==1.10.13)
|
75
75
|
Requires-Dist: pygithub (>=1.58.1,<2.0.0)
|
76
76
|
Requires-Dist: pygments (>=2.15.1,<3.0.0)
|
77
|
-
Requires-Dist: pymupdf (>=1.23.3,<2.0.0)
|
78
|
-
Requires-Dist: pymysql (>=1.1.0,<2.0.0) ; extra == "mysql"
|
77
|
+
Requires-Dist: pymupdf (>=1.23.3,<2.0.0) ; extra == "pdf-parsers"
|
78
|
+
Requires-Dist: pymysql (>=1.1.0,<2.0.0) ; extra == "mysql" or extra == "sql"
|
79
79
|
Requires-Dist: pyparsing (>=3.0.9,<4.0.0)
|
80
|
-
Requires-Dist: pypdf (>=3.12.2,<4.0.0)
|
81
|
-
Requires-Dist: pytesseract (>=0.3.10,<0.4.0)
|
82
|
-
Requires-Dist: pytest-asyncio (>=0.21.1,<0.22.0)
|
83
|
-
Requires-Dist: pytest-mysql (>=2.4.2,<3.0.0) ; extra == "mysql"
|
84
|
-
Requires-Dist: pytest-postgresql (>=5.0.0,<6.0.0) ; extra == "postgres"
|
85
|
-
Requires-Dist: pytest-redis (>=3.0.2,<4.0.0)
|
80
|
+
Requires-Dist: pypdf (>=3.12.2,<4.0.0) ; extra == "pdf-parsers"
|
81
|
+
Requires-Dist: pytesseract (>=0.3.10,<0.4.0) ; extra == "pdf-parsers"
|
86
82
|
Requires-Dist: python-docx (>=1.1.0,<2.0.0)
|
87
83
|
Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
|
88
84
|
Requires-Dist: python-magic (>=0.4.27,<0.5.0)
|
@@ -93,21 +89,16 @@ Requires-Dist: redis (>=5.0.1,<6.0.0)
|
|
93
89
|
Requires-Dist: requests (>=2.31.0,<3.0.0)
|
94
90
|
Requires-Dist: requests-oauthlib (>=1.3.1,<2.0.0)
|
95
91
|
Requires-Dist: rich (>=13.3.4,<14.0.0)
|
96
|
-
Requires-Dist: ruff (>=0.2.2,<0.3.0)
|
97
92
|
Requires-Dist: scrapy (>=2.11.0,<3.0.0)
|
98
93
|
Requires-Dist: sentence-transformers (==2.2.2) ; extra == "hf-embeddings"
|
99
|
-
Requires-Dist: sqlalchemy (>=2.0.19,<3.0.0)
|
100
|
-
Requires-Dist: tantivy (>=0.21.0,<0.22.0)
|
94
|
+
Requires-Dist: sqlalchemy (>=2.0.19,<3.0.0) ; extra == "sql"
|
95
|
+
Requires-Dist: tantivy (>=0.21.0,<0.22.0) ; extra == "lancedb"
|
101
96
|
Requires-Dist: thefuzz (>=0.20.0,<0.21.0)
|
102
97
|
Requires-Dist: tiktoken (>=0.7.0,<0.8.0)
|
103
98
|
Requires-Dist: torch (==2.0.0) ; extra == "hf-embeddings" or extra == "transformers"
|
104
99
|
Requires-Dist: trafilatura (>=1.5.0,<2.0.0)
|
105
100
|
Requires-Dist: transformers (>=4.40.1,<5.0.0) ; extra == "transformers"
|
106
101
|
Requires-Dist: typer (>=0.9.0,<0.10.0)
|
107
|
-
Requires-Dist: types-pillow (>=10.2.0.20240406,<11.0.0.0)
|
108
|
-
Requires-Dist: types-pyyaml (>=6.0.12.20240311,<7.0.0.0)
|
109
|
-
Requires-Dist: types-redis (>=4.5.5.2,<5.0.0.0)
|
110
|
-
Requires-Dist: types-requests (>=2.31.0.1,<3.0.0.0)
|
111
102
|
Requires-Dist: unstructured[docx,pdf,pptx] (>=0.10.16,<0.10.18) ; extra == "unstructured"
|
112
103
|
Requires-Dist: wget (>=3.2,<4.0)
|
113
104
|
Description-Content-Type: text/markdown
|
@@ -237,6 +228,17 @@ teacher_task.run()
|
|
237
228
|
<summary> <b>Click to expand</b></summary>
|
238
229
|
|
239
230
|
- **May 2024:**
|
231
|
+
- [Infinite loop detection](https://github.com/langroid/langroid/blob/0ed30eb467b00d5eaf2933b577a4b2cc37de1aa1/langroid/agent/task.py#L1121) for task loops of cycle-length <= 10 (configurable
|
232
|
+
in [`TaskConfig`](https://github.
|
233
|
+
com/langroid/langroid/blob/0ed30eb467b00d5eaf2933b577a4b2cc37de1aa1/langroid/agent
|
234
|
+
/task.py#L61). Only detects _exact_ loops, rather than
|
235
|
+
_approximate_ loops where the entities are saying essentially similar (but not
|
236
|
+
exactly the same) things repeatedly.
|
237
|
+
- "@"-addressing: any entity can address any other by name, which can be the name
|
238
|
+
of an agent's responder ("llm", "user", "agent") or a sub-task name. This is a
|
239
|
+
simpler alternative to the `RecipientTool` mechanism, with the tradeoff that
|
240
|
+
since it's not a tool, there's no way to enforce/remind the LLM to explicitly
|
241
|
+
specify an addressee (in scenarios where this is important).
|
240
242
|
- [Much-Improved Citation](https://github.com/langroid/langroid/issues/477)
|
241
243
|
generation and display when using `DocChatAgent`.
|
242
244
|
- `gpt-4o` is now the default LLM throughout; Update tests and examples to work
|
@@ -1,16 +1,16 @@
|
|
1
|
-
langroid/__init__.py,sha256=
|
2
|
-
langroid/agent/__init__.py,sha256=
|
3
|
-
langroid/agent/base.py,sha256=
|
1
|
+
langroid/__init__.py,sha256=z_fCOLQJPOw3LLRPBlFB5-2HyCjpPgQa4m4iY5Fvb8Y,1800
|
2
|
+
langroid/agent/__init__.py,sha256=ll0Cubd2DZ-fsCMl7e10hf9ZjFGKzphfBco396IKITY,786
|
3
|
+
langroid/agent/base.py,sha256=6EznAMa4zeRdouo3U3_UzOI_cblvdpNH4v5CAM-fgbA,37171
|
4
4
|
langroid/agent/batch.py,sha256=feRA_yRG768ElOQjrKEefcRv6Aefd_yY7qktuYUQDwc,10040
|
5
5
|
langroid/agent/callbacks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
-
langroid/agent/callbacks/chainlit.py,sha256=
|
6
|
+
langroid/agent/callbacks/chainlit.py,sha256=XWih3UkHsYgPIaBQ1cZ-8H2VU_URh-sSfw8fcq1hfMo,20841
|
7
7
|
langroid/agent/chat_agent.py,sha256=_xsBfGBkwcHd8IRErsW7tKNz7qn0h2oKSg_BFleOPCs,39475
|
8
8
|
langroid/agent/chat_document.py,sha256=uwCq53SHRyxQw6qyhjzPYuJG48VHBgOf2122Ew3fk6c,9316
|
9
9
|
langroid/agent/helpers.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
10
|
langroid/agent/junk,sha256=LxfuuW7Cijsg0szAzT81OjWWv1PMNI-6w_-DspVIO2s,339
|
11
11
|
langroid/agent/openai_assistant.py,sha256=kIVDI4r-xGvplLU5s0nShPVHs6Jq-wOsfWE0kcMhAdQ,33056
|
12
|
-
langroid/agent/special/__init__.py,sha256=
|
13
|
-
langroid/agent/special/doc_chat_agent.py,sha256=
|
12
|
+
langroid/agent/special/__init__.py,sha256=NoR_vTfZ2mkhVhKdcwstLMKONpRwL5aLiidD_A2yB78,1208
|
13
|
+
langroid/agent/special/doc_chat_agent.py,sha256=v3czg6jNIrfe1v4JXEbT3N2v2M7xaffD9UsKTRajqUI,54305
|
14
14
|
langroid/agent/special/lance_doc_chat_agent.py,sha256=USp0U3eTaJzwF_3bdqE7CedSLbaqAi2tm-VzygcyLaA,10175
|
15
15
|
langroid/agent/special/lance_rag/__init__.py,sha256=QTbs0IVE2ZgDg8JJy1zN97rUUg4uEPH7SLGctFNumk4,174
|
16
16
|
langroid/agent/special/lance_rag/critic_agent.py,sha256=ufTdpHSeHgCzN85Q0sfWOrpBpsCjGVZdAg5yOH1ogU8,7296
|
@@ -18,38 +18,38 @@ langroid/agent/special/lance_rag/lance_rag_task.py,sha256=l_HQgrYY-CX2FwIsS961aE
|
|
18
18
|
langroid/agent/special/lance_rag/query_planner_agent.py,sha256=wSkrtY3Qz98KAqpVf0xMf4LRgKbHLASWVNUrbqwUAB0,9814
|
19
19
|
langroid/agent/special/lance_tools.py,sha256=btMwKdcT8RdwAjmzbtN1xxm3s1H7ipO9GSpUamryYx8,1456
|
20
20
|
langroid/agent/special/neo4j/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
|
-
langroid/agent/special/neo4j/csv_kg_chat.py,sha256=
|
21
|
+
langroid/agent/special/neo4j/csv_kg_chat.py,sha256=dRsAgMBa1H_EMI2YYgJR2Xyv1D7e4o3G9M64mTewq_c,6409
|
22
22
|
langroid/agent/special/neo4j/neo4j_chat_agent.py,sha256=vBr6EQ_eJCYAtqDe-gTSvWHT-jRE_fZOPsGWxuDJe4w,13092
|
23
23
|
langroid/agent/special/neo4j/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
24
24
|
langroid/agent/special/neo4j/utils/system_message.py,sha256=vRpz1P-OYLLiC6OGYYoK6x77yxVzDxMTCEJSsYUIuG4,2242
|
25
25
|
langroid/agent/special/relevance_extractor_agent.py,sha256=zIx8GUdVo1aGW6ASla0NPQjYYIpmriK_TYMijqAx3F8,4796
|
26
26
|
langroid/agent/special/retriever_agent.py,sha256=lvMvf-u9rSosg4YASuFdUbGLgkzLPknXAbJZfZ1LZCc,1868
|
27
|
-
langroid/agent/special/sql/__init__.py,sha256=
|
28
|
-
langroid/agent/special/sql/sql_chat_agent.py,sha256=
|
29
|
-
langroid/agent/special/sql/utils/__init__.py,sha256=
|
30
|
-
langroid/agent/special/sql/utils/description_extractors.py,sha256=
|
31
|
-
langroid/agent/special/sql/utils/populate_metadata.py,sha256=
|
27
|
+
langroid/agent/special/sql/__init__.py,sha256=W--80eB-TlwDjjupcsjlqpdk1xuU_w5FaYPB3pb_j9I,194
|
28
|
+
langroid/agent/special/sql/sql_chat_agent.py,sha256=Now37yznNeiCE0ysC5W5BPG41xO69kxrHZWzLqs5dhQ,13903
|
29
|
+
langroid/agent/special/sql/utils/__init__.py,sha256=JFif6CRTrN-bc91uuAI4K9fe2ndIWSNMVxJ0WA68--M,446
|
30
|
+
langroid/agent/special/sql/utils/description_extractors.py,sha256=cX8TIpmTPXZXQTMpIi3OUFwFsPywxFFdurpx717Kq0I,6529
|
31
|
+
langroid/agent/special/sql/utils/populate_metadata.py,sha256=1J22UsyEPKzwK0XlJZtYn9r6kYc0FXIr8-lZrndYlhc,3131
|
32
32
|
langroid/agent/special/sql/utils/system_message.py,sha256=qKLHkvQWRQodTtPLPxr1GSLUYUFASZU8x-ybV67cB68,1885
|
33
33
|
langroid/agent/special/sql/utils/tools.py,sha256=6uB2424SLtmapui9ggcEr0ZTiB6_dL1-JRGgN8RK9Js,1332
|
34
|
-
langroid/agent/special/table_chat_agent.py,sha256=
|
35
|
-
langroid/agent/task.py,sha256=
|
36
|
-
langroid/agent/tool_message.py,sha256=
|
37
|
-
langroid/agent/tools/__init__.py,sha256=
|
38
|
-
langroid/agent/tools/duckduckgo_search_tool.py,sha256=
|
34
|
+
langroid/agent/special/table_chat_agent.py,sha256=d9v2wsblaRx7oMnKhLV7uO_ujvk9gh59pSGvBXyeyNc,9659
|
35
|
+
langroid/agent/task.py,sha256=J4GIvbPMlL9uXKr7J-bSPHGvFK5tI2R0INgbnbFRmqk,59265
|
36
|
+
langroid/agent/tool_message.py,sha256=okhIK0M2ZIGTlQF3h6UGkYk6ibH17mzm0ypDeczlWc0,9137
|
37
|
+
langroid/agent/tools/__init__.py,sha256=8Pc9BlGCB5FQ2IDGKS_WPpHCoWp5jblMU8EHJwwikAY,303
|
38
|
+
langroid/agent/tools/duckduckgo_search_tool.py,sha256=NhsCaGZkdv28nja7yveAhSK_w6l_Ftym8agbrdzqgfo,1935
|
39
39
|
langroid/agent/tools/extract_tool.py,sha256=u5lL9rKBzaLBOrRyLnTAZ97pQ1uxyLP39XsWMnpaZpw,3789
|
40
40
|
langroid/agent/tools/generator_tool.py,sha256=y0fB0ZObjA0b3L0uSTtrqRCKHDUR95arBftqiUeKD2o,663
|
41
|
-
langroid/agent/tools/google_search_tool.py,sha256=
|
42
|
-
langroid/agent/tools/metaphor_search_tool.py,sha256=
|
41
|
+
langroid/agent/tools/google_search_tool.py,sha256=y7b-3FtgXf0lfF4AYxrZ3K5pH2dhidvibUOAGBE--WI,1456
|
42
|
+
langroid/agent/tools/metaphor_search_tool.py,sha256=qj4gt453cLEX3EGW7nVzVu6X7LCdrwjSlcNY0qJW104,2489
|
43
43
|
langroid/agent/tools/recipient_tool.py,sha256=NrLxIeQT-kbMv7AeYX0uqvGeMK4Q3fIDvG15OVzlgk8,9624
|
44
|
-
langroid/agent/tools/retrieval_tool.py,sha256=
|
45
|
-
langroid/agent/tools/run_python_code.py,sha256=
|
46
|
-
langroid/agent/tools/segment_extract_tool.py,sha256=
|
44
|
+
langroid/agent/tools/retrieval_tool.py,sha256=2q2pfoYbZNfbWQ0McxrtmfF0ekGglIgRl-6uF26pa-E,871
|
45
|
+
langroid/agent/tools/run_python_code.py,sha256=BvoxYzzHijU-p4703n2iVlt5BCieR1oMSy50w0tQZAg,1787
|
46
|
+
langroid/agent/tools/segment_extract_tool.py,sha256=WOwZdTTOqKaJUDIqI0jWDV126VM1UjJzIUandHsnC-g,1320
|
47
47
|
langroid/agent_config.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
48
48
|
langroid/cachedb/__init__.py,sha256=ygx42MS7fvh2UwRMjukTk3dWBkzv_rACebTBRYa_MkU,148
|
49
|
-
langroid/cachedb/base.py,sha256=
|
50
|
-
langroid/cachedb/momento_cachedb.py,sha256=
|
51
|
-
langroid/cachedb/redis_cachedb.py,sha256=
|
52
|
-
langroid/embedding_models/__init__.py,sha256=
|
49
|
+
langroid/cachedb/base.py,sha256=LKiJyOFQUN1NRzPIynfbYKGFfSanA6auDfBNEedBK7Y,1342
|
50
|
+
langroid/cachedb/momento_cachedb.py,sha256=YEOJ62hEcV6iIeMr5aGgRYgWQqFYaej9gEDEcY0sm7M,3172
|
51
|
+
langroid/cachedb/redis_cachedb.py,sha256=NukuCWgdp1AWWNgguiZfuypbH9GHwiYe34ZZy866u54,4981
|
52
|
+
langroid/embedding_models/__init__.py,sha256=lsu8qxCjfGujXGueJWU-VI3LMZYGjLSYgqUKDd4F3Qo,715
|
53
53
|
langroid/embedding_models/base.py,sha256=xY9QF01ilsMvaNH4JMDvkZgXY59AeYR4VAykgNd6Flg,1818
|
54
54
|
langroid/embedding_models/clustering.py,sha256=tZWElUqXl9Etqla0FAa7og96iDKgjqWjucZR_Egtp-A,6684
|
55
55
|
langroid/embedding_models/models.py,sha256=-xeN0irBPc1tUgRFHGM1ki4NwOIHr6F3SKuEjD5nTOg,7144
|
@@ -59,14 +59,14 @@ langroid/embedding_models/protoc/embeddings_pb2.py,sha256=4Q57PhOunv-uZNJrxYrWBX
|
|
59
59
|
langroid/embedding_models/protoc/embeddings_pb2.pyi,sha256=UkNy7BrNsmQm0vLb3NtGXy8jVtz-kPWwwFsX-QbQBhQ,1475
|
60
60
|
langroid/embedding_models/protoc/embeddings_pb2_grpc.py,sha256=9dYQqkW3JPyBpSEjeGXTNpSqAkC-6FPtBHyteVob2Y8,2452
|
61
61
|
langroid/embedding_models/remote_embeds.py,sha256=6_kjXByVbqhY9cGwl9R83ZcYC2km-nGieNNAo1McHaY,5151
|
62
|
-
langroid/exceptions.py,sha256=
|
63
|
-
langroid/language_models/__init__.py,sha256=
|
62
|
+
langroid/exceptions.py,sha256=w_Cr41nPAmsa6gW5nNFaO9yDcBCWdQqRspL1jYvZf5w,2209
|
63
|
+
langroid/language_models/__init__.py,sha256=55602F5QA58MmRq-yRjoXK6xZOMRHQrR4QGaCnlX218,822
|
64
64
|
langroid/language_models/azure_openai.py,sha256=ncRCbKooqLVOY-PWQUIo9C3yTuKEFbAwyngXT_M4P7k,5989
|
65
|
-
langroid/language_models/base.py,sha256=
|
65
|
+
langroid/language_models/base.py,sha256=8FTvWtOmIrz6K78kzyrVqf2uJk03dBc0AUnVY-l9ucg,21031
|
66
66
|
langroid/language_models/config.py,sha256=5UF3DzO1a-Dfsc3vghE0XGq7g9t_xDsRCsuRiU4dgBg,366
|
67
67
|
langroid/language_models/openai_assistants.py,sha256=9K-DEAL2aSWHeXj2hwCo2RAlK9_1oCPtqX2u1wISCj8,36
|
68
|
-
langroid/language_models/openai_gpt.py,sha256=
|
69
|
-
langroid/language_models/prompt_formatter/__init__.py,sha256=
|
68
|
+
langroid/language_models/openai_gpt.py,sha256=SSLBYb41ITLegdinFHL2u9Hm5v2bNgBDF8q0BsznY8A,50596
|
69
|
+
langroid/language_models/prompt_formatter/__init__.py,sha256=2-5cdE24XoFDhifOLl8yiscohil1ogbP1ECkYdBlBsk,372
|
70
70
|
langroid/language_models/prompt_formatter/base.py,sha256=eDS1sgRNZVnoajwV_ZIha6cba5Dt8xjgzdRbPITwx3Q,1221
|
71
71
|
langroid/language_models/prompt_formatter/hf_formatter.py,sha256=TFL6ppmeQWnzr6CKQzRZFYY810zE1mr8DZnhw6i85ok,5217
|
72
72
|
langroid/language_models/prompt_formatter/llama2_formatter.py,sha256=YdcO88qyBeuMENVIVvVqSYuEpvYSTndUe_jd6hVTko4,2899
|
@@ -77,11 +77,12 @@ langroid/parsing/agent_chats.py,sha256=sbZRV9ujdM5QXvvuHVjIi2ysYSYlap-uqfMMUKulr
|
|
77
77
|
langroid/parsing/code-parsing.md,sha256=--cyyNiSZSDlIwcjAV4-shKrSiRe2ytF3AdSoS_hD2g,3294
|
78
78
|
langroid/parsing/code_parser.py,sha256=BbDAzp35wkYQ9U1dpf1ARL0lVyi0tfqEc6_eox2C090,3727
|
79
79
|
langroid/parsing/config.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
80
|
-
langroid/parsing/document_parser.py,sha256=
|
80
|
+
langroid/parsing/document_parser.py,sha256=L1-ltLdHkk2yUvVCAA9g7MH7P28sb4Te8pck40u1efY,23496
|
81
81
|
langroid/parsing/image_text.py,sha256=sbLIQ5nHe2UnYUksBaQsmZGaX-X0qgEpPd7CEzi_z5M,910
|
82
82
|
langroid/parsing/para_sentence_split.py,sha256=AJBzZojP3zpB-_IMiiHismhqcvkrVBQ3ZINoQyx_bE4,2000
|
83
83
|
langroid/parsing/parse_json.py,sha256=tgB_oatcrgt6L9ZplC-xBBXjLzL1gjSQf1L2_W5kwFA,4230
|
84
84
|
langroid/parsing/parser.py,sha256=2TT6YMgEe79Kz9bPIqI-1RIEK77V2H2gbpbX5DhNNrY,10743
|
85
|
+
langroid/parsing/parser.pyi,sha256=4t55zlG_23hUFO7OvOttY1xzbLze2elpGjoVTUK9izM,1693
|
85
86
|
langroid/parsing/repo_loader.py,sha256=My5UIe-h1xr0I-6Icu0ZVwRHmGRRRW8SrJYMc9J1M9Q,29361
|
86
87
|
langroid/parsing/routing.py,sha256=_NFPe7wLjd5B6s47w3M8-5vldL8e2Sz51Gb5bwF5ooY,1072
|
87
88
|
langroid/parsing/search.py,sha256=plQtjarB9afGfJLB0CyPXPq3mM4m7kRsfd0_4brziEI,8846
|
@@ -107,24 +108,25 @@ langroid/utils/docker.py,sha256=kJQOLTgM0x9j9pgIIqp0dZNZCTvoUDhp6i8tYBq1Jr0,1105
|
|
107
108
|
langroid/utils/globals.py,sha256=VkTHhlqSz86oOPq65sjul0XU8I52UNaFC5vwybMQ74w,1343
|
108
109
|
langroid/utils/llms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
109
110
|
langroid/utils/llms/strings.py,sha256=CSAX9Z6FQOLXOzbLMe_Opqtc3ruDAKTTk7cPqc6Blh0,263
|
110
|
-
langroid/utils/logging.py,sha256=
|
111
|
-
langroid/utils/output/__init__.py,sha256=
|
112
|
-
langroid/utils/output/
|
111
|
+
langroid/utils/logging.py,sha256=WN180zjxhlozwtyTcLWmbVkXylBs5EvQj85dBPeVUwc,3985
|
112
|
+
langroid/utils/output/__init__.py,sha256=7P0f--4IZneNsTxXY5fd6d6iW-CeVe-KSsl-87sbBPc,340
|
113
|
+
langroid/utils/output/citations.py,sha256=PSY2cpti8W-ZGFMAgj1lYoEIZy0lsniLpCliMsVkXtc,1425
|
114
|
+
langroid/utils/output/printing.py,sha256=yzPJZN-8_jyOJmI9N_oLwEDfjMwVgk3IDiwnZ4eK_AE,2962
|
113
115
|
langroid/utils/output/status.py,sha256=rzbE7mDJcgNNvdtylCseQcPGCGghtJvVq3lB-OPJ49E,1049
|
114
116
|
langroid/utils/pandas_utils.py,sha256=UctS986Jtl_MvU5rA7-GfrjEHXP7MNu8ePhepv0bTn0,755
|
115
117
|
langroid/utils/pydantic_utils.py,sha256=yb-ghaQYL7EIYeiZ0tailvZvAuJZNF7UBXkd3z35OYc,21728
|
116
118
|
langroid/utils/system.py,sha256=RfAcQODu4tjl-pAO8zZ65yKB9-6WsvzSz2dEPkJdSdw,4909
|
117
119
|
langroid/utils/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
118
120
|
langroid/utils/web/login.py,sha256=1iz9eUAHa87vpKIkzwkmFa00avwFWivDSAr7QUhK7U0,2528
|
119
|
-
langroid/vector_store/__init__.py,sha256=
|
121
|
+
langroid/vector_store/__init__.py,sha256=BHrYUKy7LHBJAMPuObcD0vs_TRj-B-Xipw7JLy1J9q4,1086
|
120
122
|
langroid/vector_store/base.py,sha256=VZl-pvGs6K-ruTT8SQmDthsCp-VARYaf6OuzKmcXN58,13469
|
121
|
-
langroid/vector_store/chromadb.py,sha256=
|
122
|
-
langroid/vector_store/lancedb.py,sha256=
|
123
|
-
langroid/vector_store/meilisearch.py,sha256=
|
124
|
-
langroid/vector_store/momento.py,sha256=
|
123
|
+
langroid/vector_store/chromadb.py,sha256=bZ5HjwgKgfJj1PUHsatYsrHv-v0dpOfMR2l0tJ2H0_A,7890
|
124
|
+
langroid/vector_store/lancedb.py,sha256=nC5pcrFoUOOO941Y7XiPZONUO4LuoZIAR1aR4PecKto,19014
|
125
|
+
langroid/vector_store/meilisearch.py,sha256=6frB7GFWeWmeKzRfLZIvzRjllniZ1cYj3HmhHQICXLs,11663
|
126
|
+
langroid/vector_store/momento.py,sha256=QaPzUnTwlswoawGB-paLtUPyLRvckFXLfLDfvbTzjNQ,10505
|
125
127
|
langroid/vector_store/qdrant_cloud.py,sha256=3im4Mip0QXLkR6wiqVsjV1QvhSElfxdFSuDKddBDQ-4,188
|
126
128
|
langroid/vector_store/qdrantdb.py,sha256=sk5Qb2ZNbooi0rorsMuqIMokF7WADw6PJ0D6goM2XBw,16802
|
127
|
-
langroid-0.1.
|
128
|
-
langroid-0.1.
|
129
|
-
langroid-0.1.
|
130
|
-
langroid-0.1.
|
129
|
+
langroid-0.1.253.dist-info/LICENSE,sha256=EgVbvA6VSYgUlvC3RvPKehSg7MFaxWDsFuzLOsPPfJg,1065
|
130
|
+
langroid-0.1.253.dist-info/METADATA,sha256=7uPgSyezQf5zVej0TNnFlAA2wD0CIwOGpX6_MdV_L5w,50190
|
131
|
+
langroid-0.1.253.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
132
|
+
langroid-0.1.253.dist-info/RECORD,,
|
File without changes
|
File without changes
|