langroid 0.2.9__py3-none-any.whl → 0.2.12__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/agent/chat_agent.py +2 -1
- langroid/agent/special/sql/sql_chat_agent.py +16 -0
- langroid/language_models/openai_gpt.py +1 -1
- {langroid-0.2.9.dist-info → langroid-0.2.12.dist-info}/METADATA +5 -3
- {langroid-0.2.9.dist-info → langroid-0.2.12.dist-info}/RECORD +8 -8
- pyproject.toml +3 -3
- {langroid-0.2.9.dist-info → langroid-0.2.12.dist-info}/LICENSE +0 -0
- {langroid-0.2.9.dist-info → langroid-0.2.12.dist-info}/WHEEL +0 -0
langroid/agent/chat_agent.py
CHANGED
@@ -540,8 +540,9 @@ class ChatAgent(Agent):
|
|
540
540
|
"""
|
541
541
|
if self.llm is None:
|
542
542
|
return None
|
543
|
-
|
544
543
|
hist, output_len = self._prep_llm_messages(message)
|
544
|
+
if len(hist) == 0:
|
545
|
+
return None
|
545
546
|
with StreamingIfAllowed(self.llm, self.llm.get_stream()):
|
546
547
|
response = await self.llm_response_messages_async(hist, output_len)
|
547
548
|
self.message_history.append(ChatDocument.to_LLMMessage(response))
|
@@ -66,6 +66,17 @@ Start by asking what I would like to know about the data.
|
|
66
66
|
|
67
67
|
"""
|
68
68
|
|
69
|
+
ADDRESSING_INSTRUCTION = """
|
70
|
+
IMPORTANT - Whenever you are NOT writing a SQL query, make sure you address the user
|
71
|
+
using {prefix}User. You MUST use the EXACT syntax {prefix} !!!
|
72
|
+
|
73
|
+
In other words, you ALWAYS write EITHER:
|
74
|
+
- a SQL query using the `run_query` tool,
|
75
|
+
- OR address the user using {prefix}User.
|
76
|
+
|
77
|
+
"""
|
78
|
+
|
79
|
+
|
69
80
|
SQL_ERROR_MSG = "There was an error in your SQL Query"
|
70
81
|
|
71
82
|
|
@@ -81,6 +92,7 @@ class SQLChatAgentConfig(ChatAgentConfig):
|
|
81
92
|
context_descriptions: Dict[str, Dict[str, Union[str, Dict[str, str]]]] = {}
|
82
93
|
use_schema_tools: bool = False
|
83
94
|
multi_schema: bool = False
|
95
|
+
addressing_prefix: str = ""
|
84
96
|
|
85
97
|
"""
|
86
98
|
Optional, but strongly recommended, context descriptions for tables, columns,
|
@@ -206,6 +218,10 @@ class SQLChatAgent(ChatAgent):
|
|
206
218
|
"""Initialize message tools used for chatting."""
|
207
219
|
message = self._format_message()
|
208
220
|
self.config.system_message = self.config.system_message.format(mode=message)
|
221
|
+
if self.config.addressing_prefix != "":
|
222
|
+
self.config.system_message += ADDRESSING_INSTRUCTION.format(
|
223
|
+
prefix=self.config.addressing_prefix
|
224
|
+
)
|
209
225
|
super().__init__(self.config)
|
210
226
|
self.enable_message(RunQueryTool)
|
211
227
|
if self.config.use_schema_tools:
|
@@ -302,7 +302,7 @@ class OpenAIGPTConfig(LLMConfig):
|
|
302
302
|
litellm.telemetry = False
|
303
303
|
litellm.drop_params = True # drop un-supported params without crashing
|
304
304
|
self.seed = None # some local mdls don't support seed
|
305
|
-
keys_dict = litellm.validate_environment(self.chat_model)
|
305
|
+
keys_dict = litellm.utils.validate_environment(self.chat_model)
|
306
306
|
missing_keys = keys_dict.get("missing_keys", [])
|
307
307
|
if len(missing_keys) > 0:
|
308
308
|
raise ValueError(
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: langroid
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.12
|
4
4
|
Summary: Harness LLMs with Multi-Agent Programming
|
5
5
|
License: MIT
|
6
6
|
Author: Prasad Chalasani
|
@@ -89,12 +89,12 @@ Requires-Dist: requests (>=2.31.0,<3.0.0)
|
|
89
89
|
Requires-Dist: requests-oauthlib (>=1.3.1,<2.0.0)
|
90
90
|
Requires-Dist: rich (>=13.3.4,<14.0.0)
|
91
91
|
Requires-Dist: scrapy (>=2.11.0,<3.0.0) ; extra == "scrapy"
|
92
|
-
Requires-Dist: sentence-transformers (
|
92
|
+
Requires-Dist: sentence-transformers (>=2.2.2,<3.0.0) ; extra == "hf-transformers" or extra == "all" or extra == "hf-embeddings"
|
93
93
|
Requires-Dist: sqlalchemy (>=2.0.19,<3.0.0) ; extra == "db" or extra == "all" or extra == "sql"
|
94
94
|
Requires-Dist: tantivy (>=0.21.0,<0.22.0) ; extra == "vecdbs" or extra == "lancedb"
|
95
95
|
Requires-Dist: thefuzz (>=0.20.0,<0.21.0)
|
96
96
|
Requires-Dist: tiktoken (>=0.7.0,<0.8.0)
|
97
|
-
Requires-Dist: torch (
|
97
|
+
Requires-Dist: torch (>=2.0.0,<3.0.0) ; extra == "hf-transformers" or extra == "all" or extra == "hf-embeddings" or extra == "transformers"
|
98
98
|
Requires-Dist: trafilatura (>=1.5.0,<2.0.0)
|
99
99
|
Requires-Dist: transformers (>=4.40.1,<5.0.0) ; extra == "hf-transformers" or extra == "all" or extra == "transformers"
|
100
100
|
Requires-Dist: typer (>=0.9.0,<0.10.0)
|
@@ -522,6 +522,8 @@ with a postgres db, you will need to:
|
|
522
522
|
If this gives you an error, try `pip install psycopg2-binary` in your virtualenv.
|
523
523
|
</details>
|
524
524
|
|
525
|
+
:memo: If you get strange errors involving `mysqlclient`, try doing `pip uninstall mysqlclient` followed by `pip install mysqlclient`.
|
526
|
+
|
525
527
|
### Set up environment variables (API keys, etc)
|
526
528
|
|
527
529
|
To get started, all you need is an OpenAI API Key.
|
@@ -4,7 +4,7 @@ langroid/agent/base.py,sha256=eeYZ-NYbrepOjUVQS9K0nDhE8x2gKUNjgxFTA24mook,37560
|
|
4
4
|
langroid/agent/batch.py,sha256=feRA_yRG768ElOQjrKEefcRv6Aefd_yY7qktuYUQDwc,10040
|
5
5
|
langroid/agent/callbacks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
6
|
langroid/agent/callbacks/chainlit.py,sha256=UKG2_v4ktfkEaGvdouVRHEqQejEYya2Rli8jrP65TmA,22055
|
7
|
-
langroid/agent/chat_agent.py,sha256=
|
7
|
+
langroid/agent/chat_agent.py,sha256=bTQrIMbN8JxxtnVNC-xzODVLvH3SHmy5vijRjY3cCUE,41564
|
8
8
|
langroid/agent/chat_document.py,sha256=MwtNABK28tfSzqCeQlxoauT8uPn8oldU7dlnrX8aQ10,11232
|
9
9
|
langroid/agent/helpers.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
10
|
langroid/agent/junk,sha256=LxfuuW7Cijsg0szAzT81OjWWv1PMNI-6w_-DspVIO2s,339
|
@@ -25,7 +25,7 @@ langroid/agent/special/neo4j/utils/system_message.py,sha256=vRpz1P-OYLLiC6OGYYoK
|
|
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
27
|
langroid/agent/special/sql/__init__.py,sha256=mWfmm1QpXCezpFOS2eI57M0L_Ok3q5_ukG8tXBnBrEA,319
|
28
|
-
langroid/agent/special/sql/sql_chat_agent.py,sha256=
|
28
|
+
langroid/agent/special/sql/sql_chat_agent.py,sha256=8ZCKjN8GE4I4_G_YkMoZExT6StOWcXZYD95DQ2yI1ro,14436
|
29
29
|
langroid/agent/special/sql/utils/__init__.py,sha256=JFif6CRTrN-bc91uuAI4K9fe2ndIWSNMVxJ0WA68--M,446
|
30
30
|
langroid/agent/special/sql/utils/description_extractors.py,sha256=cX8TIpmTPXZXQTMpIi3OUFwFsPywxFFdurpx717Kq0I,6529
|
31
31
|
langroid/agent/special/sql/utils/populate_metadata.py,sha256=1J22UsyEPKzwK0XlJZtYn9r6kYc0FXIr8-lZrndYlhc,3131
|
@@ -67,7 +67,7 @@ langroid/language_models/azure_openai.py,sha256=ncRCbKooqLVOY-PWQUIo9C3yTuKEFbAw
|
|
67
67
|
langroid/language_models/base.py,sha256=oAK2lXBqksMglqWqE2CjC03X3qPFXWgtjFWpH9hJ3C8,17500
|
68
68
|
langroid/language_models/config.py,sha256=9Q8wk5a7RQr8LGMT_0WkpjY8S4ywK06SalVRjXlfCiI,378
|
69
69
|
langroid/language_models/mock_lm.py,sha256=qdgj-wtbQBXlibo_0rIRfCt0hGTPRoxy1C4VjN6quI4,2707
|
70
|
-
langroid/language_models/openai_gpt.py,sha256=
|
70
|
+
langroid/language_models/openai_gpt.py,sha256=84oXRT6hyY_MiavmRw61Jtw67xCmzBQEt5NKuqsxnQo,51680
|
71
71
|
langroid/language_models/prompt_formatter/__init__.py,sha256=2-5cdE24XoFDhifOLl8yiscohil1ogbP1ECkYdBlBsk,372
|
72
72
|
langroid/language_models/prompt_formatter/base.py,sha256=eDS1sgRNZVnoajwV_ZIha6cba5Dt8xjgzdRbPITwx3Q,1221
|
73
73
|
langroid/language_models/prompt_formatter/hf_formatter.py,sha256=TFL6ppmeQWnzr6CKQzRZFYY810zE1mr8DZnhw6i85ok,5217
|
@@ -129,8 +129,8 @@ langroid/vector_store/meilisearch.py,sha256=6frB7GFWeWmeKzRfLZIvzRjllniZ1cYj3Hmh
|
|
129
129
|
langroid/vector_store/momento.py,sha256=QaPzUnTwlswoawGB-paLtUPyLRvckFXLfLDfvbTzjNQ,10505
|
130
130
|
langroid/vector_store/qdrant_cloud.py,sha256=3im4Mip0QXLkR6wiqVsjV1QvhSElfxdFSuDKddBDQ-4,188
|
131
131
|
langroid/vector_store/qdrantdb.py,sha256=wYOuu5c2vIKn9ZgvTXcAiZXMpV8AOXEWFAzI8S8UP-0,16828
|
132
|
-
pyproject.toml,sha256=
|
133
|
-
langroid-0.2.
|
134
|
-
langroid-0.2.
|
135
|
-
langroid-0.2.
|
136
|
-
langroid-0.2.
|
132
|
+
pyproject.toml,sha256=IQC1A8fpg0cKWje_Gt3YxZpRQw9ie1xlJ8TaiS4Vr3w,6960
|
133
|
+
langroid-0.2.12.dist-info/LICENSE,sha256=EgVbvA6VSYgUlvC3RvPKehSg7MFaxWDsFuzLOsPPfJg,1065
|
134
|
+
langroid-0.2.12.dist-info/METADATA,sha256=66JdF6SmaH5yisjOpT6dgYsjXAG7FbnD8OaTAmVnV7I,54101
|
135
|
+
langroid-0.2.12.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
136
|
+
langroid-0.2.12.dist-info/RECORD,,
|
pyproject.toml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "langroid"
|
3
|
-
version = "0.2.
|
3
|
+
version = "0.2.12"
|
4
4
|
description = "Harness LLMs with Multi-Agent Programming"
|
5
5
|
authors = ["Prasad Chalasani <pchalasani@gmail.com>"]
|
6
6
|
readme = "README.md"
|
@@ -16,8 +16,8 @@ python = "^3.10"
|
|
16
16
|
chromadb = {version=">=0.4.21, <=0.4.23", optional=true}
|
17
17
|
momento = {version="^1.10.2", optional=true}
|
18
18
|
unstructured = {extras = ["docx", "pptx", "pdf"], version = ">=0.10.16,<0.10.18", optional=true}
|
19
|
-
sentence-transformers = {version="2.2.2", optional=true}
|
20
|
-
torch = {version="2.0.0", optional=true}
|
19
|
+
sentence-transformers = {version="^2.2.2", optional=true}
|
20
|
+
torch = {version="^2.0.0", optional=true}
|
21
21
|
psycopg2 = {version="^2.9.7", optional=true}
|
22
22
|
pymysql = {version = "^1.1.0", optional = true}
|
23
23
|
meilisearch-python-sdk = {version="^2.2.3", optional=true}
|
File without changes
|
File without changes
|