langroid 0.22.4__tar.gz → 0.22.6__tar.gz

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 (148) hide show
  1. {langroid-0.22.4 → langroid-0.22.6}/PKG-INFO +2 -2
  2. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/base.py +7 -4
  3. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/sql/sql_chat_agent.py +25 -1
  4. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/sql/utils/tools.py +15 -1
  5. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/task.py +5 -0
  6. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/utils.py +4 -1
  7. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/configuration.py +0 -2
  8. {langroid-0.22.4 → langroid-0.22.6}/pyproject.toml +2 -2
  9. {langroid-0.22.4 → langroid-0.22.6}/LICENSE +0 -0
  10. {langroid-0.22.4 → langroid-0.22.6}/README.md +0 -0
  11. {langroid-0.22.4 → langroid-0.22.6}/langroid/__init__.py +0 -0
  12. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/__init__.py +0 -0
  13. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/batch.py +0 -0
  14. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/callbacks/__init__.py +0 -0
  15. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/callbacks/chainlit.py +0 -0
  16. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/chat_agent.py +0 -0
  17. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/chat_document.py +0 -0
  18. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/helpers.py +0 -0
  19. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/junk +0 -0
  20. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/openai_assistant.py +0 -0
  21. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/__init__.py +0 -0
  22. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/arangodb/__init__.py +0 -0
  23. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/arangodb/arangodb_agent.py +0 -0
  24. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/arangodb/system_messages.py +0 -0
  25. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/arangodb/tools.py +0 -0
  26. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/arangodb/utils.py +0 -0
  27. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/doc_chat_agent.py +0 -0
  28. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/lance_doc_chat_agent.py +0 -0
  29. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/lance_rag/__init__.py +0 -0
  30. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/lance_rag/critic_agent.py +0 -0
  31. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/lance_rag/lance_rag_task.py +0 -0
  32. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/lance_rag/query_planner_agent.py +0 -0
  33. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/lance_tools.py +0 -0
  34. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/neo4j/__init__.py +0 -0
  35. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/neo4j/csv_kg_chat.py +0 -0
  36. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/neo4j/neo4j_chat_agent.py +0 -0
  37. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/neo4j/system_messages.py +0 -0
  38. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/neo4j/tools.py +0 -0
  39. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/relevance_extractor_agent.py +0 -0
  40. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/retriever_agent.py +0 -0
  41. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/sql/__init__.py +0 -0
  42. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/sql/utils/__init__.py +0 -0
  43. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/sql/utils/description_extractors.py +0 -0
  44. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/sql/utils/populate_metadata.py +0 -0
  45. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/sql/utils/system_message.py +0 -0
  46. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/special/table_chat_agent.py +0 -0
  47. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/structured_message.py +0 -0
  48. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/tool_message.py +0 -0
  49. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/tools/__init__.py +0 -0
  50. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/tools/duckduckgo_search_tool.py +0 -0
  51. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/tools/file_tools.py +0 -0
  52. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/tools/google_search_tool.py +0 -0
  53. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/tools/metaphor_search_tool.py +0 -0
  54. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/tools/orchestration.py +0 -0
  55. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/tools/recipient_tool.py +0 -0
  56. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/tools/retrieval_tool.py +0 -0
  57. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/tools/rewind_tool.py +0 -0
  58. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/tools/segment_extract_tool.py +0 -0
  59. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/typed_task.py +0 -0
  60. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent/xml_tool_message.py +0 -0
  61. {langroid-0.22.4 → langroid-0.22.6}/langroid/agent_config.py +0 -0
  62. {langroid-0.22.4 → langroid-0.22.6}/langroid/cachedb/__init__.py +0 -0
  63. {langroid-0.22.4 → langroid-0.22.6}/langroid/cachedb/base.py +0 -0
  64. {langroid-0.22.4 → langroid-0.22.6}/langroid/cachedb/momento_cachedb.py +0 -0
  65. {langroid-0.22.4 → langroid-0.22.6}/langroid/cachedb/redis_cachedb.py +0 -0
  66. {langroid-0.22.4 → langroid-0.22.6}/langroid/embedding_models/__init__.py +0 -0
  67. {langroid-0.22.4 → langroid-0.22.6}/langroid/embedding_models/base.py +0 -0
  68. {langroid-0.22.4 → langroid-0.22.6}/langroid/embedding_models/clustering.py +0 -0
  69. {langroid-0.22.4 → langroid-0.22.6}/langroid/embedding_models/models.py +0 -0
  70. {langroid-0.22.4 → langroid-0.22.6}/langroid/embedding_models/protoc/__init__.py +0 -0
  71. {langroid-0.22.4 → langroid-0.22.6}/langroid/embedding_models/protoc/embeddings.proto +0 -0
  72. {langroid-0.22.4 → langroid-0.22.6}/langroid/embedding_models/protoc/embeddings_pb2.py +0 -0
  73. {langroid-0.22.4 → langroid-0.22.6}/langroid/embedding_models/protoc/embeddings_pb2.pyi +0 -0
  74. {langroid-0.22.4 → langroid-0.22.6}/langroid/embedding_models/protoc/embeddings_pb2_grpc.py +0 -0
  75. {langroid-0.22.4 → langroid-0.22.6}/langroid/embedding_models/remote_embeds.py +0 -0
  76. {langroid-0.22.4 → langroid-0.22.6}/langroid/exceptions.py +0 -0
  77. {langroid-0.22.4 → langroid-0.22.6}/langroid/language_models/.chainlit/config.toml +0 -0
  78. {langroid-0.22.4 → langroid-0.22.6}/langroid/language_models/.chainlit/translations/en-US.json +0 -0
  79. {langroid-0.22.4 → langroid-0.22.6}/langroid/language_models/__init__.py +0 -0
  80. {langroid-0.22.4 → langroid-0.22.6}/langroid/language_models/azure_openai.py +0 -0
  81. {langroid-0.22.4 → langroid-0.22.6}/langroid/language_models/base.py +0 -0
  82. {langroid-0.22.4 → langroid-0.22.6}/langroid/language_models/config.py +0 -0
  83. {langroid-0.22.4 → langroid-0.22.6}/langroid/language_models/mock_lm.py +0 -0
  84. {langroid-0.22.4 → langroid-0.22.6}/langroid/language_models/openai_gpt.py +0 -0
  85. {langroid-0.22.4 → langroid-0.22.6}/langroid/language_models/prompt_formatter/__init__.py +0 -0
  86. {langroid-0.22.4 → langroid-0.22.6}/langroid/language_models/prompt_formatter/base.py +0 -0
  87. {langroid-0.22.4 → langroid-0.22.6}/langroid/language_models/prompt_formatter/hf_formatter.py +0 -0
  88. {langroid-0.22.4 → langroid-0.22.6}/langroid/language_models/prompt_formatter/llama2_formatter.py +0 -0
  89. {langroid-0.22.4 → langroid-0.22.6}/langroid/language_models/utils.py +0 -0
  90. {langroid-0.22.4 → langroid-0.22.6}/langroid/mytypes.py +0 -0
  91. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/__init__.py +0 -0
  92. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/agent_chats.py +0 -0
  93. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/code-parsing.md +0 -0
  94. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/code_parser.py +0 -0
  95. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/config.py +0 -0
  96. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/document_parser.py +0 -0
  97. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/image_text.py +0 -0
  98. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/para_sentence_split.py +0 -0
  99. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/parse_json.py +0 -0
  100. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/parser.py +0 -0
  101. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/repo_loader.py +0 -0
  102. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/routing.py +0 -0
  103. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/search.py +0 -0
  104. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/spider.py +0 -0
  105. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/table_loader.py +0 -0
  106. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/url_loader.py +0 -0
  107. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/url_loader_cookies.py +0 -0
  108. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/urls.py +0 -0
  109. {langroid-0.22.4 → langroid-0.22.6}/langroid/parsing/web_search.py +0 -0
  110. {langroid-0.22.4 → langroid-0.22.6}/langroid/prompts/__init__.py +0 -0
  111. {langroid-0.22.4 → langroid-0.22.6}/langroid/prompts/chat-gpt4-system-prompt.md +0 -0
  112. {langroid-0.22.4 → langroid-0.22.6}/langroid/prompts/dialog.py +0 -0
  113. {langroid-0.22.4 → langroid-0.22.6}/langroid/prompts/prompts_config.py +0 -0
  114. {langroid-0.22.4 → langroid-0.22.6}/langroid/prompts/templates.py +0 -0
  115. {langroid-0.22.4 → langroid-0.22.6}/langroid/py.typed +0 -0
  116. {langroid-0.22.4 → langroid-0.22.6}/langroid/pydantic_v1/__init__.py +0 -0
  117. {langroid-0.22.4 → langroid-0.22.6}/langroid/pydantic_v1/main.py +0 -0
  118. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/.chainlit/config.toml +0 -0
  119. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/.chainlit/translations/en-US.json +0 -0
  120. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/__init__.py +0 -0
  121. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/algorithms/__init__.py +0 -0
  122. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/algorithms/graph.py +0 -0
  123. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/constants.py +0 -0
  124. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/docker.py +0 -0
  125. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/git_utils.py +0 -0
  126. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/globals.py +0 -0
  127. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/llms/__init__.py +0 -0
  128. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/llms/strings.py +0 -0
  129. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/logging.py +0 -0
  130. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/object_registry.py +0 -0
  131. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/output/__init__.py +0 -0
  132. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/output/citations.py +0 -0
  133. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/output/printing.py +0 -0
  134. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/output/status.py +0 -0
  135. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/pandas_utils.py +0 -0
  136. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/pydantic_utils.py +0 -0
  137. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/system.py +0 -0
  138. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/types.py +0 -0
  139. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/web/__init__.py +0 -0
  140. {langroid-0.22.4 → langroid-0.22.6}/langroid/utils/web/login.py +0 -0
  141. {langroid-0.22.4 → langroid-0.22.6}/langroid/vector_store/__init__.py +0 -0
  142. {langroid-0.22.4 → langroid-0.22.6}/langroid/vector_store/base.py +0 -0
  143. {langroid-0.22.4 → langroid-0.22.6}/langroid/vector_store/chromadb.py +0 -0
  144. {langroid-0.22.4 → langroid-0.22.6}/langroid/vector_store/lancedb.py +0 -0
  145. {langroid-0.22.4 → langroid-0.22.6}/langroid/vector_store/meilisearch.py +0 -0
  146. {langroid-0.22.4 → langroid-0.22.6}/langroid/vector_store/momento.py +0 -0
  147. {langroid-0.22.4 → langroid-0.22.6}/langroid/vector_store/qdrant_cloud.py +0 -0
  148. {langroid-0.22.4 → langroid-0.22.6}/langroid/vector_store/qdrantdb.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langroid
3
- Version: 0.22.4
3
+ Version: 0.22.6
4
4
  Summary: Harness LLMs with Multi-Agent Programming
5
5
  License: MIT
6
6
  Author: Prasad Chalasani
@@ -68,7 +68,7 @@ Requires-Dist: metaphor-python (>=0.1.23,<0.2.0) ; extra == "all" or extra == "m
68
68
  Requires-Dist: momento (>=1.10.2,<1.21) ; extra == "momento"
69
69
  Requires-Dist: neo4j (>=5.14.1,<6.0.0) ; extra == "all" or extra == "neo4j"
70
70
  Requires-Dist: nest-asyncio (>=1.6.0,<2.0.0)
71
- Requires-Dist: nltk (>=3.8.1,<4.0.0)
71
+ Requires-Dist: nltk (>=3.8.2,<4.0.0)
72
72
  Requires-Dist: onnxruntime (>=1.16.1,<2.0.0)
73
73
  Requires-Dist: openai (>=1.45.0,<2.0.0)
74
74
  Requires-Dist: pandas (>=2.0.3,<3.0.0)
@@ -142,7 +142,7 @@ class Agent(ABC):
142
142
  self.llm_tools_handled: Set[str] = set()
143
143
  self.llm_tools_usable: Set[str] = set()
144
144
  self.llm_tools_known: Set[str] = set() # all known tools, handled/used or not
145
- self.interactive: bool | None = None
145
+ self.interactive: bool = True # may be modified by Task wrapper
146
146
  self.token_stats_str = ""
147
147
  self.default_human_response: Optional[str] = None
148
148
  self._indent = ""
@@ -645,10 +645,11 @@ class Agent(ABC):
645
645
  need_human_response = (
646
646
  isinstance(msg, ChatDocument) and msg.metadata.recipient == Entity.USER
647
647
  )
648
+ default_user_msg = (
649
+ (self.default_human_response or "null") if need_human_response else ""
650
+ )
648
651
 
649
- interactive = self.interactive or settings.interactive
650
-
651
- if not interactive and not need_human_response:
652
+ if not self.interactive and not need_human_response:
652
653
  return None
653
654
  elif self.default_human_response is not None:
654
655
  user_msg = self.default_human_response
@@ -669,6 +670,8 @@ class Agent(ABC):
669
670
  tool_ids = []
670
671
  if msg is not None and isinstance(msg, ChatDocument):
671
672
  tool_ids = msg.metadata.tool_ids
673
+
674
+ user_msg = user_msg.strip() or default_user_msg.strip()
672
675
  # only return non-None result if user_msg not empty
673
676
  if not user_msg:
674
677
  return None
@@ -362,6 +362,17 @@ class SQLChatAgent(ChatAgent):
362
362
 
363
363
  return error_message_template
364
364
 
365
+ def _available_tool_names(self) -> str:
366
+ return ",".join(
367
+ tool.name() # type: ignore
368
+ for tool in [
369
+ RunQueryTool,
370
+ GetTableNamesTool,
371
+ GetTableSchemaTool,
372
+ GetColumnDescriptionsTool,
373
+ ]
374
+ )
375
+
365
376
  def run_query(self, msg: RunQueryTool) -> str:
366
377
  """
367
378
  Handle a RunQueryTool message by executing a SQL query and returning the result.
@@ -399,7 +410,20 @@ class SQLChatAgent(ChatAgent):
399
410
  finally:
400
411
  session.close()
401
412
 
402
- return response_message
413
+ final_message = f"""
414
+ Below is the result from your use of the TOOL `{RunQueryTool.name()}`:
415
+ ==== result ====
416
+ {response_message}
417
+ ================
418
+
419
+ If you are READY to ANSWER the ORIGINAL QUERY:
420
+ use the `{DoneTool.name()}` tool to send the result to the user,
421
+ with the `content` set to the answer or result
422
+ OTHERWISE:
423
+ continue using one of your available TOOLs:
424
+ {self._available_tool_names()}
425
+ """
426
+ return final_message
403
427
 
404
428
  def _format_rows(self, rows: Sequence[Row[Any]]) -> str:
405
429
  """
@@ -1,4 +1,4 @@
1
- from typing import List
1
+ from typing import List, Tuple
2
2
 
3
3
  from langroid.agent.tool_message import ToolMessage
4
4
 
@@ -11,6 +11,20 @@ class RunQueryTool(ToolMessage):
11
11
  """
12
12
  query: str
13
13
 
14
+ @classmethod
15
+ def examples(cls) -> List["ToolMessage" | Tuple[str, "ToolMessage"]]:
16
+ return [
17
+ cls(
18
+ query="SELECT * FROM movies WHERE genre = 'comedy'",
19
+ ),
20
+ (
21
+ "Find all movies with a rating of 5",
22
+ cls(
23
+ query="SELECT * FROM movies WHERE rating = 5",
24
+ ),
25
+ ),
26
+ ]
27
+
14
28
 
15
29
  class GetTableNamesTool(ToolMessage):
16
30
  request: str = "get_table_names"
@@ -1023,9 +1023,11 @@ class Task:
1023
1023
  found_response = False
1024
1024
  # (responder, result) from a responder who explicitly said NO_ANSWER
1025
1025
  no_answer_response: None | Tuple[Responder, ChatDocument] = None
1026
+ n_non_responders = 0
1026
1027
  for r in responders:
1027
1028
  self.is_pass_thru = False
1028
1029
  if not self._can_respond(r):
1030
+ n_non_responders += 1
1029
1031
  # create dummy msg for logging
1030
1032
  log_doc = ChatDocument(
1031
1033
  content="[CANNOT RESPOND]",
@@ -1038,6 +1040,9 @@ class Task:
1038
1040
  # no need to register this dummy msg in ObjectRegistry
1039
1041
  ChatDocument.delete_id(log_doc.id())
1040
1042
  self.log_message(r, log_doc)
1043
+ if n_non_responders == len(responders):
1044
+ # don't stay in this "non-response" loop forever
1045
+ break
1041
1046
  continue
1042
1047
  self.human_tried = r == Entity.USER
1043
1048
  result = self.response(r, turns)
@@ -31,6 +31,10 @@ def download_nltk_resource(resource: str) -> None:
31
31
  nltk.download(resource, quiet=True)
32
32
 
33
33
 
34
+ # Download punkt_tab resource at module import
35
+ download_nltk_resource("punkt_tab")
36
+ download_nltk_resource("gutenberg")
37
+
34
38
  T = TypeVar("T")
35
39
 
36
40
 
@@ -46,7 +50,6 @@ def batched(iterable: Iterable[T], n: int) -> Iterable[Sequence[T]]:
46
50
 
47
51
  def generate_random_sentences(k: int) -> str:
48
52
  # Load the sample text
49
- download_nltk_resource("gutenberg")
50
53
 
51
54
  from nltk.corpus import gutenberg
52
55
 
@@ -17,8 +17,6 @@ class Settings(BaseSettings):
17
17
  stream: bool = True # stream output?
18
18
  cache: bool = True # use cache?
19
19
  cache_type: Literal["redis", "fakeredis", "momento", "none"] = "redis" # cache type
20
- interactive: bool = True # interactive mode?
21
- gpt3_5: bool = True # use GPT-3.5?
22
20
  chat_model: str = "" # language model name, e.g. litellm/ollama/llama2
23
21
  quiet: bool = False # quiet mode (i.e. suppress all output)?
24
22
  notebook: bool = False # running in a notebook?
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "langroid"
3
- version = "0.22.4"
3
+ version = "0.22.6"
4
4
  description = "Harness LLMs with Multi-Agent Programming"
5
5
  authors = ["Prasad Chalasani <pchalasani@gmail.com>"]
6
6
  readme = "README.md"
@@ -62,7 +62,7 @@ fakeredis = "^2.12.1"
62
62
  faker = "^18.9.0"
63
63
  requests = "^2.31.0"
64
64
  pyparsing = "^3.0.9"
65
- nltk = "^3.8.1"
65
+ nltk = "^3.8.2"
66
66
  qdrant-client = "^1.8.0"
67
67
  pydantic = ">=1,<3"
68
68
  pandas = "^2.0.3"
File without changes
File without changes
File without changes
File without changes
File without changes