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.
@@ -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.9
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 (==2.2.2) ; extra == "hf-transformers" or extra == "all" or extra == "hf-embeddings"
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 (==2.0.0) ; extra == "hf-transformers" or extra == "all" or extra == "hf-embeddings" or extra == "transformers"
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=nO6Yx5WvFsul5RmTP-HCdzeQPhccmzU_mDcPNdkzQ-s,41514
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=Now37yznNeiCE0ysC5W5BPG41xO69kxrHZWzLqs5dhQ,13903
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=sALSYei56U57x8ugMayGIR6MtR9b9QsJ0MYhdt3_aMA,51674
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=vsVtb6-2IMl64e-3J3mqLEdL-hGAIw2X3gBjNk_HILs,6957
133
- langroid-0.2.9.dist-info/LICENSE,sha256=EgVbvA6VSYgUlvC3RvPKehSg7MFaxWDsFuzLOsPPfJg,1065
134
- langroid-0.2.9.dist-info/METADATA,sha256=yColHB7bdfQ1nlYGucfcfH14xywCqm2IAjd8kPs3GhI,53950
135
- langroid-0.2.9.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
136
- langroid-0.2.9.dist-info/RECORD,,
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.9"
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}