langroid 0.1.252__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.
Files changed (44) hide show
  1. langroid/__init__.py +16 -15
  2. langroid/agent/__init__.py +1 -0
  3. langroid/agent/callbacks/chainlit.py +5 -12
  4. langroid/agent/special/__init__.py +3 -2
  5. langroid/agent/special/doc_chat_agent.py +36 -56
  6. langroid/agent/special/neo4j/csv_kg_chat.py +2 -2
  7. langroid/agent/special/sql/__init__.py +1 -2
  8. langroid/agent/special/sql/sql_chat_agent.py +10 -4
  9. langroid/agent/special/sql/utils/__init__.py +4 -5
  10. langroid/agent/special/sql/utils/description_extractors.py +7 -2
  11. langroid/agent/special/sql/utils/populate_metadata.py +6 -1
  12. langroid/agent/special/table_chat_agent.py +2 -2
  13. langroid/agent/tool_message.py +14 -3
  14. langroid/agent/tools/__init__.py +2 -3
  15. langroid/agent/tools/duckduckgo_search_tool.py +2 -2
  16. langroid/agent/tools/google_search_tool.py +2 -2
  17. langroid/agent/tools/metaphor_search_tool.py +2 -2
  18. langroid/agent/tools/retrieval_tool.py +2 -2
  19. langroid/agent/tools/run_python_code.py +2 -2
  20. langroid/agent/tools/segment_extract_tool.py +2 -2
  21. langroid/cachedb/base.py +10 -2
  22. langroid/cachedb/momento_cachedb.py +10 -4
  23. langroid/cachedb/redis_cachedb.py +2 -3
  24. langroid/embedding_models/__init__.py +1 -0
  25. langroid/exceptions.py +57 -0
  26. langroid/language_models/__init__.py +1 -0
  27. langroid/language_models/base.py +2 -3
  28. langroid/language_models/openai_gpt.py +15 -14
  29. langroid/language_models/prompt_formatter/__init__.py +4 -3
  30. langroid/parsing/document_parser.py +20 -4
  31. langroid/parsing/parser.pyi +56 -0
  32. langroid/utils/logging.py +7 -3
  33. langroid/utils/output/__init__.py +1 -2
  34. langroid/utils/output/citations.py +41 -0
  35. langroid/utils/output/printing.py +7 -2
  36. langroid/vector_store/__init__.py +33 -17
  37. langroid/vector_store/chromadb.py +2 -8
  38. langroid/vector_store/lancedb.py +36 -5
  39. langroid/vector_store/meilisearch.py +21 -11
  40. langroid/vector_store/momento.py +31 -14
  41. {langroid-0.1.252.dist-info → langroid-0.1.253.dist-info}/METADATA +31 -29
  42. {langroid-0.1.252.dist-info → langroid-0.1.253.dist-info}/RECORD +44 -42
  43. {langroid-0.1.252.dist-info → langroid-0.1.253.dist-info}/LICENSE +0 -0
  44. {langroid-0.1.252.dist-info → langroid-0.1.253.dist-info}/WHEEL +0 -0
@@ -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
- from momento import (
13
- # PreviewVectorIndexClientAsync,
14
- CredentialProvider,
15
- PreviewVectorIndexClient,
16
- VectorIndexConfigurations,
17
- )
18
- from momento.requests.vector_index import (
19
- ALL_METADATA,
20
- Item,
21
- SimilarityMetric,
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.config.distance,
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.252
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 (==1.16.1)
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=GXjDRv1rVNCxEB0BkfPIT4xgldKkB20b7kGPuGxNdiI,1803
2
- langroid/agent/__init__.py,sha256=_D8dxnfdr92ch1CIrUkKjrB5HVvsQdn62b1Fb2kBxV8,785
1
+ langroid/__init__.py,sha256=z_fCOLQJPOw3LLRPBlFB5-2HyCjpPgQa4m4iY5Fvb8Y,1800
2
+ langroid/agent/__init__.py,sha256=ll0Cubd2DZ-fsCMl7e10hf9ZjFGKzphfBco396IKITY,786
3
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=LboE3zlLLzClKxpBkzHX4XU6fW4lNZW97zwwN97uuaU,21067
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=NG0JkB5y4K0bgnd9Q9UIvFExun3uTfVOWEVLVymff1M,1207
13
- langroid/agent/special/doc_chat_agent.py,sha256=MTUrUyCZ7_wksTo11AwSTHMOKZf1WX-cAJowi_sfT2o,55320
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=koL3sKtHm3aRkLTiARs54ngrcU3lOR1WaLLc_i8rWOU,6374
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=qUM-b4FfvIt0gYWP7_niyqR3OwVMMkuK2SyqUYWjyxs,207
28
- langroid/agent/special/sql/sql_chat_agent.py,sha256=ZTK19ToIpSxtedwzsqL38diMtHth6uVDf25Wng2dn7Q,13746
29
- langroid/agent/special/sql/utils/__init__.py,sha256=i8oYoyI4aV1LcYktMOhzi_eYbQ6RVt2e7Dj2bXkCZXc,447
30
- langroid/agent/special/sql/utils/description_extractors.py,sha256=RZ2R3DmASxB1ijzbA_TuxkhP00Pxcg_tAKlLXGo3rcg,6381
31
- langroid/agent/special/sql/utils/populate_metadata.py,sha256=x2OMKfmIBnJESBG3qKt6gvr3H3L4ZQcoxHfNdWfHjZs,2987
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=xz4nWndTYTykET_oaveHcZUQ8IEpmA5yB8QGTXfOifw,9624
34
+ langroid/agent/special/table_chat_agent.py,sha256=d9v2wsblaRx7oMnKhLV7uO_ujvk9gh59pSGvBXyeyNc,9659
35
35
  langroid/agent/task.py,sha256=J4GIvbPMlL9uXKr7J-bSPHGvFK5tI2R0INgbnbFRmqk,59265
36
- langroid/agent/tool_message.py,sha256=aNSYLiRCszPZXJpKt7bGXWjBRzJVJIZoTjQXy7RHMQs,8486
37
- langroid/agent/tools/__init__.py,sha256=q-maq3k2BXhPAU99G0H6-j_ozoRvx15I1RFpPVicQIU,304
38
- langroid/agent/tools/duckduckgo_search_tool.py,sha256=mLGhlgs6pwbYZIwrOs9shfh1dMBVT4DtkR29pYL3cCQ,1900
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=cQxcNtb8XCNpOo_yCeYRwG_y-OATjPgkbr01kea9qWE,1421
42
- langroid/agent/tools/metaphor_search_tool.py,sha256=NKHss-AkI942_XhfMgUctAwHjIHpqp5NfYIebKV4UcE,2454
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=6uvRNg-kG_ItPa3sF9NWkthQ5frHn8bkB1Z3GSd3Oas,836
45
- langroid/agent/tools/run_python_code.py,sha256=V3mHdHQYn0M0PAtyoHxjNvk6KvWWcQ4ugo0TOKc8HyI,1752
46
- langroid/agent/tools/segment_extract_tool.py,sha256=W39poS7Av2EuJ34tGKhLhzgj3zEyZnBplpSt2goRAp4,1285
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=tdIZmdDdDMW-wVkNQdi4vMQCHP718l9JM6cDhL6odf4,1229
50
- langroid/cachedb/momento_cachedb.py,sha256=IbaYG7HgG-G18GlWsYVnLv0r2e2S48z6sl8OlJOGUfc,2998
51
- langroid/cachedb/redis_cachedb.py,sha256=5WrwgareXGboZeaCLkJ8MarqRMrrXl4_8o8aDrdrOCE,4993
52
- langroid/embedding_models/__init__.py,sha256=AJg2668ytmUyqYP0SGw-ZKz2ITi4YK7IAv2lfCjFfOg,714
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=aQwRVRb04flh1GVbLo3PmoIf3sP9RC7Q5gJH9aVSEkI,169
63
- langroid/language_models/__init__.py,sha256=5L9ndEEC8iLJHjDJmYFTnv6-2-3xsxWUMHcugR8IeDs,821
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=2JhacnbQ-DJzLbOaJqyZPnl867xyiz_W-ODiAlEcp98,21131
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=5O-roChpUDZ6OmRTOkR9e2AHHZL8w12Yzs9Q_xviDZ0,50668
69
- langroid/language_models/prompt_formatter/__init__.py,sha256=9JXFF22QNMmbQV1q4nrIeQVTtA3Tx8tEZABLtLBdFyc,352
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=sfyNhkIdAQkufOHb-tTv63EF51pGNzrnAl0DNeLR40I,23049
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=R8TN-FqVpwZ4Ajgls9TDMthLvPpQd0QVNXK-PJDj1Z8,3917
111
- langroid/utils/output/__init__.py,sha256=4X8Hdo1SEm06NUnggMJrLtW8i1owdDQPrS7J08BaTec,341
112
- langroid/utils/output/printing.py,sha256=5EsYB1O4qKhocW19aebOUzK82RD9U5nygbY21yo8gfg,2872
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=D82ioqPWxKTTbN0qiPNB-I1GjovhLw1MgDuYhcB3hCs,831
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=rp-qWmYJc_HR48JYNt1MixjJM90jZTdeZIYghd5CenA,8109
122
- langroid/vector_store/lancedb.py,sha256=lbl8wZuV6GNw0LnIwOSriSNwoMEba90umQTcQHtMw7Y,18483
123
- langroid/vector_store/meilisearch.py,sha256=d2huA9P-NoYRuAQ9ZeXJmMKr7ry8u90RUSR28k2ecQg,11340
124
- langroid/vector_store/momento.py,sha256=9cui31TTrILid2KIzUpBkN2Ey3g_CZWOQVdaFsA4Ors,10045
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.252.dist-info/LICENSE,sha256=EgVbvA6VSYgUlvC3RvPKehSg7MFaxWDsFuzLOsPPfJg,1065
128
- langroid-0.1.252.dist-info/METADATA,sha256=zRgxQH1C04RM1tofjy6tNtYSE1YalSYHvqVz7oVjYU8,49559
129
- langroid-0.1.252.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
130
- langroid-0.1.252.dist-info/RECORD,,
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,,