langroid 0.26.0__tar.gz → 0.26.2__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.26.0 → langroid-0.26.2}/PKG-INFO +2 -2
  2. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/batch.py +33 -0
  3. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/chat_agent.py +2 -0
  4. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/document_parser.py +7 -1
  5. {langroid-0.26.0 → langroid-0.26.2}/pyproject.toml +2 -2
  6. {langroid-0.26.0 → langroid-0.26.2}/LICENSE +0 -0
  7. {langroid-0.26.0 → langroid-0.26.2}/README.md +0 -0
  8. {langroid-0.26.0 → langroid-0.26.2}/langroid/__init__.py +0 -0
  9. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/__init__.py +0 -0
  10. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/base.py +0 -0
  11. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/callbacks/__init__.py +0 -0
  12. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/callbacks/chainlit.py +0 -0
  13. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/chat_document.py +0 -0
  14. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/helpers.py +0 -0
  15. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/junk +0 -0
  16. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/openai_assistant.py +0 -0
  17. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/__init__.py +0 -0
  18. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/arangodb/__init__.py +0 -0
  19. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/arangodb/arangodb_agent.py +0 -0
  20. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/arangodb/system_messages.py +0 -0
  21. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/arangodb/tools.py +0 -0
  22. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/arangodb/utils.py +0 -0
  23. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/doc_chat_agent.py +0 -0
  24. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/lance_doc_chat_agent.py +0 -0
  25. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/lance_rag/__init__.py +0 -0
  26. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/lance_rag/critic_agent.py +0 -0
  27. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/lance_rag/lance_rag_task.py +0 -0
  28. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/lance_rag/query_planner_agent.py +0 -0
  29. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/lance_tools.py +0 -0
  30. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/neo4j/__init__.py +0 -0
  31. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/neo4j/csv_kg_chat.py +0 -0
  32. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/neo4j/neo4j_chat_agent.py +0 -0
  33. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/neo4j/system_messages.py +0 -0
  34. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/neo4j/tools.py +0 -0
  35. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/relevance_extractor_agent.py +0 -0
  36. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/retriever_agent.py +0 -0
  37. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/sql/__init__.py +0 -0
  38. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/sql/sql_chat_agent.py +0 -0
  39. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/sql/utils/__init__.py +0 -0
  40. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/sql/utils/description_extractors.py +0 -0
  41. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/sql/utils/populate_metadata.py +0 -0
  42. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/sql/utils/system_message.py +0 -0
  43. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/sql/utils/tools.py +0 -0
  44. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/special/table_chat_agent.py +0 -0
  45. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/structured_message.py +0 -0
  46. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/task.py +0 -0
  47. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/tool_message.py +0 -0
  48. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/tools/__init__.py +0 -0
  49. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/tools/duckduckgo_search_tool.py +0 -0
  50. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/tools/file_tools.py +0 -0
  51. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/tools/google_search_tool.py +0 -0
  52. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/tools/metaphor_search_tool.py +0 -0
  53. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/tools/orchestration.py +0 -0
  54. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/tools/recipient_tool.py +0 -0
  55. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/tools/retrieval_tool.py +0 -0
  56. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/tools/rewind_tool.py +0 -0
  57. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/tools/segment_extract_tool.py +0 -0
  58. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/typed_task.py +0 -0
  59. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent/xml_tool_message.py +0 -0
  60. {langroid-0.26.0 → langroid-0.26.2}/langroid/agent_config.py +0 -0
  61. {langroid-0.26.0 → langroid-0.26.2}/langroid/cachedb/__init__.py +0 -0
  62. {langroid-0.26.0 → langroid-0.26.2}/langroid/cachedb/base.py +0 -0
  63. {langroid-0.26.0 → langroid-0.26.2}/langroid/cachedb/momento_cachedb.py +0 -0
  64. {langroid-0.26.0 → langroid-0.26.2}/langroid/cachedb/redis_cachedb.py +0 -0
  65. {langroid-0.26.0 → langroid-0.26.2}/langroid/embedding_models/__init__.py +0 -0
  66. {langroid-0.26.0 → langroid-0.26.2}/langroid/embedding_models/base.py +0 -0
  67. {langroid-0.26.0 → langroid-0.26.2}/langroid/embedding_models/clustering.py +0 -0
  68. {langroid-0.26.0 → langroid-0.26.2}/langroid/embedding_models/models.py +0 -0
  69. {langroid-0.26.0 → langroid-0.26.2}/langroid/embedding_models/protoc/__init__.py +0 -0
  70. {langroid-0.26.0 → langroid-0.26.2}/langroid/embedding_models/protoc/embeddings.proto +0 -0
  71. {langroid-0.26.0 → langroid-0.26.2}/langroid/embedding_models/protoc/embeddings_pb2.py +0 -0
  72. {langroid-0.26.0 → langroid-0.26.2}/langroid/embedding_models/protoc/embeddings_pb2.pyi +0 -0
  73. {langroid-0.26.0 → langroid-0.26.2}/langroid/embedding_models/protoc/embeddings_pb2_grpc.py +0 -0
  74. {langroid-0.26.0 → langroid-0.26.2}/langroid/embedding_models/remote_embeds.py +0 -0
  75. {langroid-0.26.0 → langroid-0.26.2}/langroid/exceptions.py +0 -0
  76. {langroid-0.26.0 → langroid-0.26.2}/langroid/language_models/.chainlit/config.toml +0 -0
  77. {langroid-0.26.0 → langroid-0.26.2}/langroid/language_models/.chainlit/translations/en-US.json +0 -0
  78. {langroid-0.26.0 → langroid-0.26.2}/langroid/language_models/__init__.py +0 -0
  79. {langroid-0.26.0 → langroid-0.26.2}/langroid/language_models/azure_openai.py +0 -0
  80. {langroid-0.26.0 → langroid-0.26.2}/langroid/language_models/base.py +0 -0
  81. {langroid-0.26.0 → langroid-0.26.2}/langroid/language_models/config.py +0 -0
  82. {langroid-0.26.0 → langroid-0.26.2}/langroid/language_models/mock_lm.py +0 -0
  83. {langroid-0.26.0 → langroid-0.26.2}/langroid/language_models/openai_gpt.py +0 -0
  84. {langroid-0.26.0 → langroid-0.26.2}/langroid/language_models/prompt_formatter/__init__.py +0 -0
  85. {langroid-0.26.0 → langroid-0.26.2}/langroid/language_models/prompt_formatter/base.py +0 -0
  86. {langroid-0.26.0 → langroid-0.26.2}/langroid/language_models/prompt_formatter/hf_formatter.py +0 -0
  87. {langroid-0.26.0 → langroid-0.26.2}/langroid/language_models/prompt_formatter/llama2_formatter.py +0 -0
  88. {langroid-0.26.0 → langroid-0.26.2}/langroid/language_models/utils.py +0 -0
  89. {langroid-0.26.0 → langroid-0.26.2}/langroid/mytypes.py +0 -0
  90. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/__init__.py +0 -0
  91. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/agent_chats.py +0 -0
  92. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/code-parsing.md +0 -0
  93. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/code_parser.py +0 -0
  94. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/config.py +0 -0
  95. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/image_text.py +0 -0
  96. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/para_sentence_split.py +0 -0
  97. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/parse_json.py +0 -0
  98. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/parser.py +0 -0
  99. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/repo_loader.py +0 -0
  100. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/routing.py +0 -0
  101. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/search.py +0 -0
  102. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/spider.py +0 -0
  103. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/table_loader.py +0 -0
  104. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/url_loader.py +0 -0
  105. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/url_loader_cookies.py +0 -0
  106. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/urls.py +0 -0
  107. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/utils.py +0 -0
  108. {langroid-0.26.0 → langroid-0.26.2}/langroid/parsing/web_search.py +0 -0
  109. {langroid-0.26.0 → langroid-0.26.2}/langroid/prompts/__init__.py +0 -0
  110. {langroid-0.26.0 → langroid-0.26.2}/langroid/prompts/chat-gpt4-system-prompt.md +0 -0
  111. {langroid-0.26.0 → langroid-0.26.2}/langroid/prompts/dialog.py +0 -0
  112. {langroid-0.26.0 → langroid-0.26.2}/langroid/prompts/prompts_config.py +0 -0
  113. {langroid-0.26.0 → langroid-0.26.2}/langroid/prompts/templates.py +0 -0
  114. {langroid-0.26.0 → langroid-0.26.2}/langroid/py.typed +0 -0
  115. {langroid-0.26.0 → langroid-0.26.2}/langroid/pydantic_v1/__init__.py +0 -0
  116. {langroid-0.26.0 → langroid-0.26.2}/langroid/pydantic_v1/main.py +0 -0
  117. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/.chainlit/config.toml +0 -0
  118. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/.chainlit/translations/en-US.json +0 -0
  119. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/__init__.py +0 -0
  120. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/algorithms/__init__.py +0 -0
  121. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/algorithms/graph.py +0 -0
  122. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/configuration.py +0 -0
  123. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/constants.py +0 -0
  124. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/docker.py +0 -0
  125. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/git_utils.py +0 -0
  126. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/globals.py +0 -0
  127. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/llms/__init__.py +0 -0
  128. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/llms/strings.py +0 -0
  129. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/logging.py +0 -0
  130. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/object_registry.py +0 -0
  131. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/output/__init__.py +0 -0
  132. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/output/citations.py +0 -0
  133. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/output/printing.py +0 -0
  134. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/output/status.py +0 -0
  135. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/pandas_utils.py +0 -0
  136. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/pydantic_utils.py +0 -0
  137. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/system.py +0 -0
  138. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/types.py +0 -0
  139. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/web/__init__.py +0 -0
  140. {langroid-0.26.0 → langroid-0.26.2}/langroid/utils/web/login.py +0 -0
  141. {langroid-0.26.0 → langroid-0.26.2}/langroid/vector_store/__init__.py +0 -0
  142. {langroid-0.26.0 → langroid-0.26.2}/langroid/vector_store/base.py +0 -0
  143. {langroid-0.26.0 → langroid-0.26.2}/langroid/vector_store/chromadb.py +0 -0
  144. {langroid-0.26.0 → langroid-0.26.2}/langroid/vector_store/lancedb.py +0 -0
  145. {langroid-0.26.0 → langroid-0.26.2}/langroid/vector_store/meilisearch.py +0 -0
  146. {langroid-0.26.0 → langroid-0.26.2}/langroid/vector_store/momento.py +0 -0
  147. {langroid-0.26.0 → langroid-0.26.2}/langroid/vector_store/qdrant_cloud.py +0 -0
  148. {langroid-0.26.0 → langroid-0.26.2}/langroid/vector_store/qdrantdb.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langroid
3
- Version: 0.26.0
3
+ Version: 0.26.2
4
4
  Summary: Harness LLMs with Multi-Agent Programming
5
5
  License: MIT
6
6
  Author: Prasad Chalasani
@@ -54,7 +54,7 @@ Requires-Dist: fire (>=0.5.0,<0.6.0)
54
54
  Requires-Dist: gitpython (>=3.1.43,<4.0.0)
55
55
  Requires-Dist: google-api-python-client (>=2.95.0,<3.0.0)
56
56
  Requires-Dist: google-generativeai (>=0.5.2,<0.6.0)
57
- Requires-Dist: groq (>=0.5.0,<0.6.0)
57
+ Requires-Dist: groq (>=0.13.0,<0.14.0)
58
58
  Requires-Dist: grpcio (>=1.62.1,<2.0.0)
59
59
  Requires-Dist: halo (>=0.0.31,<0.0.32)
60
60
  Requires-Dist: huggingface-hub (>=0.21.2,<0.22.0) ; extra == "hf-transformers" or extra == "all" or extra == "transformers"
@@ -363,3 +363,36 @@ def agent_response_batch(
363
363
  sequential=sequential,
364
364
  stop_on_first_result=stop_on_first_result,
365
365
  )
366
+
367
+
368
+ def run_batch_function(
369
+ function: Callable[[T], U],
370
+ items: list[T],
371
+ sequential: bool = True,
372
+ batch_size: Optional[int] = None,
373
+ ) -> List[U]:
374
+ async def _do_task(item: T) -> U:
375
+ return function(item)
376
+
377
+ async def _do_all(items: Iterable[T]) -> List[U]:
378
+ if sequential:
379
+ results = []
380
+ for item in items:
381
+ result = await _do_task(item)
382
+ results.append(result)
383
+ return results
384
+
385
+ return await asyncio.gather(*(_do_task(item) for item in items))
386
+
387
+ results: List[U] = []
388
+
389
+ if batch_size is None:
390
+ with status(f"[bold green]Running {len(items)} tasks:"):
391
+ results = asyncio.run(_do_all(items))
392
+ else:
393
+ batches = batched(items, batch_size)
394
+ for batch in batches:
395
+ with status(f"[bold green]Running batch of {len(batch)} tasks:"):
396
+ results.extend(asyncio.run(_do_all(batch)))
397
+
398
+ return results
@@ -58,6 +58,8 @@ class ChatAgentConfig(AgentConfig):
58
58
  the OpenAI tool-call API is used, rather than the older/deprecated
59
59
  function-call API. However the tool-call API has some tricky aspects,
60
60
  hence we set this to False by default.
61
+ strict_recovery: whether to enable strict schema recovery when there
62
+ is a tool-generation error.
61
63
  enable_orchestration_tool_handling: whether to enable handling of orchestration
62
64
  tools, e.g. ForwardTool, DoneTool, PassTool, etc.
63
65
  output_format: When supported by the LLM (certain OpenAI LLMs
@@ -357,6 +357,7 @@ class DocumentParser(Parser):
357
357
  docs: List[Document] = []
358
358
  # metadata.id to be shared by ALL chunks of this document
359
359
  common_id = ObjectRegistry.new_id()
360
+ n_chunks = 0 # how many chunk so far
360
361
  for i, page in self.iterate_pages():
361
362
  page_text = self.extract_text_from_page(page)
362
363
  split += self.tokenizer.encode(page_text)
@@ -378,9 +379,14 @@ class DocumentParser(Parser):
378
379
  ),
379
380
  )
380
381
  )
382
+ n_chunks += 1
381
383
  split = split[self.config.chunk_size - self.config.overlap :]
382
384
  pages = [str(i + 1)]
383
- if len(split) > self.config.overlap:
385
+ # there may be a last split remaining:
386
+ # if it's shorter than the overlap, we shouldn't make a chunk for it
387
+ # since it's already included in the prior chunk;
388
+ # the only exception is if there have been no chunks so far.
389
+ if len(split) > self.config.overlap or n_chunks == 0:
384
390
  pg = "-".join([pages[0], pages[-1]])
385
391
  text = self.tokenizer.decode(split[: self.config.chunk_size])
386
392
  docs.append(
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "langroid"
3
- version = "0.26.0"
3
+ version = "0.26.2"
4
4
  description = "Harness LLMs with Multi-Agent Programming"
5
5
  authors = ["Prasad Chalasani <pchalasani@gmail.com>"]
6
6
  readme = "README.md"
@@ -82,7 +82,7 @@ grpcio = "^1.62.1"
82
82
  duckduckgo-search = "^6.0.0"
83
83
 
84
84
  google-generativeai = "^0.5.2"
85
- groq = "^0.5.0"
85
+ groq = "^0.13.0"
86
86
  nest-asyncio = "^1.6.0"
87
87
  async-generator = "^1.10"
88
88
 
File without changes
File without changes
File without changes
File without changes
File without changes