langroid 0.22.4__tar.gz → 0.22.5__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.5}/PKG-INFO +2 -2
  2. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/base.py +7 -4
  3. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/task.py +5 -0
  4. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/utils.py +4 -1
  5. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/configuration.py +0 -2
  6. {langroid-0.22.4 → langroid-0.22.5}/pyproject.toml +2 -2
  7. {langroid-0.22.4 → langroid-0.22.5}/LICENSE +0 -0
  8. {langroid-0.22.4 → langroid-0.22.5}/README.md +0 -0
  9. {langroid-0.22.4 → langroid-0.22.5}/langroid/__init__.py +0 -0
  10. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/__init__.py +0 -0
  11. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/batch.py +0 -0
  12. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/callbacks/__init__.py +0 -0
  13. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/callbacks/chainlit.py +0 -0
  14. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/chat_agent.py +0 -0
  15. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/chat_document.py +0 -0
  16. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/helpers.py +0 -0
  17. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/junk +0 -0
  18. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/openai_assistant.py +0 -0
  19. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/__init__.py +0 -0
  20. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/arangodb/__init__.py +0 -0
  21. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/arangodb/arangodb_agent.py +0 -0
  22. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/arangodb/system_messages.py +0 -0
  23. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/arangodb/tools.py +0 -0
  24. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/arangodb/utils.py +0 -0
  25. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/doc_chat_agent.py +0 -0
  26. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/lance_doc_chat_agent.py +0 -0
  27. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/lance_rag/__init__.py +0 -0
  28. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/lance_rag/critic_agent.py +0 -0
  29. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/lance_rag/lance_rag_task.py +0 -0
  30. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/lance_rag/query_planner_agent.py +0 -0
  31. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/lance_tools.py +0 -0
  32. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/neo4j/__init__.py +0 -0
  33. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/neo4j/csv_kg_chat.py +0 -0
  34. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/neo4j/neo4j_chat_agent.py +0 -0
  35. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/neo4j/system_messages.py +0 -0
  36. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/neo4j/tools.py +0 -0
  37. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/relevance_extractor_agent.py +0 -0
  38. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/retriever_agent.py +0 -0
  39. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/sql/__init__.py +0 -0
  40. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/sql/sql_chat_agent.py +0 -0
  41. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/sql/utils/__init__.py +0 -0
  42. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/sql/utils/description_extractors.py +0 -0
  43. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/sql/utils/populate_metadata.py +0 -0
  44. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/sql/utils/system_message.py +0 -0
  45. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/sql/utils/tools.py +0 -0
  46. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/special/table_chat_agent.py +0 -0
  47. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/structured_message.py +0 -0
  48. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/tool_message.py +0 -0
  49. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/tools/__init__.py +0 -0
  50. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/tools/duckduckgo_search_tool.py +0 -0
  51. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/tools/file_tools.py +0 -0
  52. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/tools/google_search_tool.py +0 -0
  53. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/tools/metaphor_search_tool.py +0 -0
  54. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/tools/orchestration.py +0 -0
  55. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/tools/recipient_tool.py +0 -0
  56. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/tools/retrieval_tool.py +0 -0
  57. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/tools/rewind_tool.py +0 -0
  58. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/tools/segment_extract_tool.py +0 -0
  59. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/typed_task.py +0 -0
  60. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent/xml_tool_message.py +0 -0
  61. {langroid-0.22.4 → langroid-0.22.5}/langroid/agent_config.py +0 -0
  62. {langroid-0.22.4 → langroid-0.22.5}/langroid/cachedb/__init__.py +0 -0
  63. {langroid-0.22.4 → langroid-0.22.5}/langroid/cachedb/base.py +0 -0
  64. {langroid-0.22.4 → langroid-0.22.5}/langroid/cachedb/momento_cachedb.py +0 -0
  65. {langroid-0.22.4 → langroid-0.22.5}/langroid/cachedb/redis_cachedb.py +0 -0
  66. {langroid-0.22.4 → langroid-0.22.5}/langroid/embedding_models/__init__.py +0 -0
  67. {langroid-0.22.4 → langroid-0.22.5}/langroid/embedding_models/base.py +0 -0
  68. {langroid-0.22.4 → langroid-0.22.5}/langroid/embedding_models/clustering.py +0 -0
  69. {langroid-0.22.4 → langroid-0.22.5}/langroid/embedding_models/models.py +0 -0
  70. {langroid-0.22.4 → langroid-0.22.5}/langroid/embedding_models/protoc/__init__.py +0 -0
  71. {langroid-0.22.4 → langroid-0.22.5}/langroid/embedding_models/protoc/embeddings.proto +0 -0
  72. {langroid-0.22.4 → langroid-0.22.5}/langroid/embedding_models/protoc/embeddings_pb2.py +0 -0
  73. {langroid-0.22.4 → langroid-0.22.5}/langroid/embedding_models/protoc/embeddings_pb2.pyi +0 -0
  74. {langroid-0.22.4 → langroid-0.22.5}/langroid/embedding_models/protoc/embeddings_pb2_grpc.py +0 -0
  75. {langroid-0.22.4 → langroid-0.22.5}/langroid/embedding_models/remote_embeds.py +0 -0
  76. {langroid-0.22.4 → langroid-0.22.5}/langroid/exceptions.py +0 -0
  77. {langroid-0.22.4 → langroid-0.22.5}/langroid/language_models/.chainlit/config.toml +0 -0
  78. {langroid-0.22.4 → langroid-0.22.5}/langroid/language_models/.chainlit/translations/en-US.json +0 -0
  79. {langroid-0.22.4 → langroid-0.22.5}/langroid/language_models/__init__.py +0 -0
  80. {langroid-0.22.4 → langroid-0.22.5}/langroid/language_models/azure_openai.py +0 -0
  81. {langroid-0.22.4 → langroid-0.22.5}/langroid/language_models/base.py +0 -0
  82. {langroid-0.22.4 → langroid-0.22.5}/langroid/language_models/config.py +0 -0
  83. {langroid-0.22.4 → langroid-0.22.5}/langroid/language_models/mock_lm.py +0 -0
  84. {langroid-0.22.4 → langroid-0.22.5}/langroid/language_models/openai_gpt.py +0 -0
  85. {langroid-0.22.4 → langroid-0.22.5}/langroid/language_models/prompt_formatter/__init__.py +0 -0
  86. {langroid-0.22.4 → langroid-0.22.5}/langroid/language_models/prompt_formatter/base.py +0 -0
  87. {langroid-0.22.4 → langroid-0.22.5}/langroid/language_models/prompt_formatter/hf_formatter.py +0 -0
  88. {langroid-0.22.4 → langroid-0.22.5}/langroid/language_models/prompt_formatter/llama2_formatter.py +0 -0
  89. {langroid-0.22.4 → langroid-0.22.5}/langroid/language_models/utils.py +0 -0
  90. {langroid-0.22.4 → langroid-0.22.5}/langroid/mytypes.py +0 -0
  91. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/__init__.py +0 -0
  92. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/agent_chats.py +0 -0
  93. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/code-parsing.md +0 -0
  94. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/code_parser.py +0 -0
  95. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/config.py +0 -0
  96. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/document_parser.py +0 -0
  97. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/image_text.py +0 -0
  98. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/para_sentence_split.py +0 -0
  99. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/parse_json.py +0 -0
  100. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/parser.py +0 -0
  101. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/repo_loader.py +0 -0
  102. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/routing.py +0 -0
  103. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/search.py +0 -0
  104. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/spider.py +0 -0
  105. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/table_loader.py +0 -0
  106. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/url_loader.py +0 -0
  107. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/url_loader_cookies.py +0 -0
  108. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/urls.py +0 -0
  109. {langroid-0.22.4 → langroid-0.22.5}/langroid/parsing/web_search.py +0 -0
  110. {langroid-0.22.4 → langroid-0.22.5}/langroid/prompts/__init__.py +0 -0
  111. {langroid-0.22.4 → langroid-0.22.5}/langroid/prompts/chat-gpt4-system-prompt.md +0 -0
  112. {langroid-0.22.4 → langroid-0.22.5}/langroid/prompts/dialog.py +0 -0
  113. {langroid-0.22.4 → langroid-0.22.5}/langroid/prompts/prompts_config.py +0 -0
  114. {langroid-0.22.4 → langroid-0.22.5}/langroid/prompts/templates.py +0 -0
  115. {langroid-0.22.4 → langroid-0.22.5}/langroid/py.typed +0 -0
  116. {langroid-0.22.4 → langroid-0.22.5}/langroid/pydantic_v1/__init__.py +0 -0
  117. {langroid-0.22.4 → langroid-0.22.5}/langroid/pydantic_v1/main.py +0 -0
  118. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/.chainlit/config.toml +0 -0
  119. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/.chainlit/translations/en-US.json +0 -0
  120. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/__init__.py +0 -0
  121. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/algorithms/__init__.py +0 -0
  122. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/algorithms/graph.py +0 -0
  123. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/constants.py +0 -0
  124. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/docker.py +0 -0
  125. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/git_utils.py +0 -0
  126. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/globals.py +0 -0
  127. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/llms/__init__.py +0 -0
  128. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/llms/strings.py +0 -0
  129. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/logging.py +0 -0
  130. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/object_registry.py +0 -0
  131. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/output/__init__.py +0 -0
  132. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/output/citations.py +0 -0
  133. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/output/printing.py +0 -0
  134. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/output/status.py +0 -0
  135. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/pandas_utils.py +0 -0
  136. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/pydantic_utils.py +0 -0
  137. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/system.py +0 -0
  138. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/types.py +0 -0
  139. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/web/__init__.py +0 -0
  140. {langroid-0.22.4 → langroid-0.22.5}/langroid/utils/web/login.py +0 -0
  141. {langroid-0.22.4 → langroid-0.22.5}/langroid/vector_store/__init__.py +0 -0
  142. {langroid-0.22.4 → langroid-0.22.5}/langroid/vector_store/base.py +0 -0
  143. {langroid-0.22.4 → langroid-0.22.5}/langroid/vector_store/chromadb.py +0 -0
  144. {langroid-0.22.4 → langroid-0.22.5}/langroid/vector_store/lancedb.py +0 -0
  145. {langroid-0.22.4 → langroid-0.22.5}/langroid/vector_store/meilisearch.py +0 -0
  146. {langroid-0.22.4 → langroid-0.22.5}/langroid/vector_store/momento.py +0 -0
  147. {langroid-0.22.4 → langroid-0.22.5}/langroid/vector_store/qdrant_cloud.py +0 -0
  148. {langroid-0.22.4 → langroid-0.22.5}/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.5
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
@@ -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.5"
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