langroid 0.1.159__tar.gz → 0.1.160__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 (109) hide show
  1. {langroid-0.1.159 → langroid-0.1.160}/PKG-INFO +2 -1
  2. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/document_parser.py +33 -0
  3. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/parser.py +5 -3
  4. {langroid-0.1.159 → langroid-0.1.160}/pyproject.toml +2 -1
  5. {langroid-0.1.159 → langroid-0.1.160}/LICENSE +0 -0
  6. {langroid-0.1.159 → langroid-0.1.160}/README.md +0 -0
  7. {langroid-0.1.159 → langroid-0.1.160}/langroid/__init__.py +0 -0
  8. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/__init__.py +0 -0
  9. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/base.py +0 -0
  10. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/batch.py +0 -0
  11. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/chat_agent.py +0 -0
  12. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/chat_document.py +0 -0
  13. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/helpers.py +0 -0
  14. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/junk +0 -0
  15. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/openai_assistant.py +0 -0
  16. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/__init__.py +0 -0
  17. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/doc_chat_agent.py +0 -0
  18. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/lance_doc_chat_agent.py +0 -0
  19. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/lance_rag/__init__.py +0 -0
  20. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/lance_rag/critic_agent.py +0 -0
  21. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/lance_rag/lance_rag_task.py +0 -0
  22. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/lance_rag/lance_tools.py +0 -0
  23. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/lance_rag/query_planner_agent.py +0 -0
  24. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/relevance_extractor_agent.py +0 -0
  25. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/retriever_agent.py +0 -0
  26. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/sql/__init__.py +0 -0
  27. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/sql/sql_chat_agent.py +0 -0
  28. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/sql/utils/__init__.py +0 -0
  29. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/sql/utils/description_extractors.py +0 -0
  30. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/sql/utils/populate_metadata.py +0 -0
  31. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/sql/utils/system_message.py +0 -0
  32. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/sql/utils/tools.py +0 -0
  33. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/special/table_chat_agent.py +0 -0
  34. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/task.py +0 -0
  35. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/tool_message.py +0 -0
  36. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/tools/__init__.py +0 -0
  37. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/tools/extract_tool.py +0 -0
  38. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/tools/generator_tool.py +0 -0
  39. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/tools/google_search_tool.py +0 -0
  40. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/tools/recipient_tool.py +0 -0
  41. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/tools/run_python_code.py +0 -0
  42. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent/tools/segment_extract_tool.py +0 -0
  43. {langroid-0.1.159 → langroid-0.1.160}/langroid/agent_config.py +0 -0
  44. {langroid-0.1.159 → langroid-0.1.160}/langroid/cachedb/__init__.py +0 -0
  45. {langroid-0.1.159 → langroid-0.1.160}/langroid/cachedb/base.py +0 -0
  46. {langroid-0.1.159 → langroid-0.1.160}/langroid/cachedb/momento_cachedb.py +0 -0
  47. {langroid-0.1.159 → langroid-0.1.160}/langroid/cachedb/redis_cachedb.py +0 -0
  48. {langroid-0.1.159 → langroid-0.1.160}/langroid/embedding_models/__init__.py +0 -0
  49. {langroid-0.1.159 → langroid-0.1.160}/langroid/embedding_models/base.py +0 -0
  50. {langroid-0.1.159 → langroid-0.1.160}/langroid/embedding_models/clustering.py +0 -0
  51. {langroid-0.1.159 → langroid-0.1.160}/langroid/embedding_models/models.py +0 -0
  52. {langroid-0.1.159 → langroid-0.1.160}/langroid/language_models/__init__.py +0 -0
  53. {langroid-0.1.159 → langroid-0.1.160}/langroid/language_models/azure_openai.py +0 -0
  54. {langroid-0.1.159 → langroid-0.1.160}/langroid/language_models/base.py +0 -0
  55. {langroid-0.1.159 → langroid-0.1.160}/langroid/language_models/config.py +0 -0
  56. {langroid-0.1.159 → langroid-0.1.160}/langroid/language_models/openai_assistants.py +0 -0
  57. {langroid-0.1.159 → langroid-0.1.160}/langroid/language_models/openai_gpt.py +0 -0
  58. {langroid-0.1.159 → langroid-0.1.160}/langroid/language_models/prompt_formatter/__init__.py +0 -0
  59. {langroid-0.1.159 → langroid-0.1.160}/langroid/language_models/prompt_formatter/base.py +0 -0
  60. {langroid-0.1.159 → langroid-0.1.160}/langroid/language_models/prompt_formatter/llama2_formatter.py +0 -0
  61. {langroid-0.1.159 → langroid-0.1.160}/langroid/language_models/utils.py +0 -0
  62. {langroid-0.1.159 → langroid-0.1.160}/langroid/mytypes.py +0 -0
  63. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/__init__.py +0 -0
  64. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/agent_chats.py +0 -0
  65. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/code-parsing.md +0 -0
  66. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/code_parser.py +0 -0
  67. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/config.py +0 -0
  68. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/json.py +0 -0
  69. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/para_sentence_split.py +0 -0
  70. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/repo_loader.py +0 -0
  71. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/search.py +0 -0
  72. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/spider.py +0 -0
  73. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/table_loader.py +0 -0
  74. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/url_loader.py +0 -0
  75. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/url_loader_cookies.py +0 -0
  76. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/urls.py +0 -0
  77. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/utils.py +0 -0
  78. {langroid-0.1.159 → langroid-0.1.160}/langroid/parsing/web_search.py +0 -0
  79. {langroid-0.1.159 → langroid-0.1.160}/langroid/prompts/__init__.py +0 -0
  80. {langroid-0.1.159 → langroid-0.1.160}/langroid/prompts/dialog.py +0 -0
  81. {langroid-0.1.159 → langroid-0.1.160}/langroid/prompts/prompts_config.py +0 -0
  82. {langroid-0.1.159 → langroid-0.1.160}/langroid/prompts/templates.py +0 -0
  83. {langroid-0.1.159 → langroid-0.1.160}/langroid/prompts/transforms.py +0 -0
  84. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/__init__.py +0 -0
  85. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/algorithms/__init__.py +0 -0
  86. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/algorithms/graph.py +0 -0
  87. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/configuration.py +0 -0
  88. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/constants.py +0 -0
  89. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/docker.py +0 -0
  90. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/globals.py +0 -0
  91. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/llms/__init__.py +0 -0
  92. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/llms/strings.py +0 -0
  93. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/logging.py +0 -0
  94. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/output/__init__.py +0 -0
  95. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/output/printing.py +0 -0
  96. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/pandas_utils.py +0 -0
  97. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/pydantic_utils.py +0 -0
  98. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/system.py +0 -0
  99. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/web/__init__.py +0 -0
  100. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/web/login.py +0 -0
  101. {langroid-0.1.159 → langroid-0.1.160}/langroid/utils/web/selenium_login.py +0 -0
  102. {langroid-0.1.159 → langroid-0.1.160}/langroid/vector_store/__init__.py +0 -0
  103. {langroid-0.1.159 → langroid-0.1.160}/langroid/vector_store/base.py +0 -0
  104. {langroid-0.1.159 → langroid-0.1.160}/langroid/vector_store/chromadb.py +0 -0
  105. {langroid-0.1.159 → langroid-0.1.160}/langroid/vector_store/lancedb.py +0 -0
  106. {langroid-0.1.159 → langroid-0.1.160}/langroid/vector_store/meilisearch.py +0 -0
  107. {langroid-0.1.159 → langroid-0.1.160}/langroid/vector_store/momento.py +0 -0
  108. {langroid-0.1.159 → langroid-0.1.160}/langroid/vector_store/qdrant_cloud.py +0 -0
  109. {langroid-0.1.159 → langroid-0.1.160}/langroid/vector_store/qdrantdb.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langroid
3
- Version: 0.1.159
3
+ Version: 0.1.160
4
4
  Summary: Harness LLMs with Multi-Agent Programming
5
5
  License: MIT
6
6
  Author: Prasad Chalasani
@@ -64,6 +64,7 @@ Requires-Dist: pytest-asyncio (>=0.21.1,<0.22.0)
64
64
  Requires-Dist: pytest-mysql (>=2.4.2,<3.0.0) ; extra == "mysql"
65
65
  Requires-Dist: pytest-postgresql (>=5.0.0,<6.0.0) ; extra == "postgres"
66
66
  Requires-Dist: pytest-redis (>=3.0.2,<4.0.0)
67
+ Requires-Dist: python-docx (>=1.1.0,<2.0.0)
67
68
  Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
68
69
  Requires-Dist: qdrant-client (>=1.7.0,<2.0.0)
69
70
  Requires-Dist: rank-bm25 (>=0.2.2,<0.3.0)
@@ -62,6 +62,8 @@ class DocumentParser(Parser):
62
62
  elif DocumentParser._document_type(source) == DocumentType.DOCX:
63
63
  if config.docx.library == "unstructured":
64
64
  return UnstructuredDocxParser(source, config)
65
+ elif config.docx.library == "python-docx":
66
+ return PythonDocxParser(source, config)
65
67
  else:
66
68
  raise ValueError(
67
69
  f"Unsupported DOCX library specified: {config.docx.library}"
@@ -436,3 +438,34 @@ class UnstructuredDocxParser(DocumentParser):
436
438
  """
437
439
  text = " ".join(el.text for el in page)
438
440
  return self.fix_text(text)
441
+
442
+
443
+ class PythonDocxParser(DocumentParser):
444
+ """
445
+ Parser for processing DOCX files using the `python-docx` library.
446
+ """
447
+
448
+ def iterate_pages(self) -> Generator[Tuple[int, Any], None, None]:
449
+ """
450
+ Simulate iterating through pages.
451
+ In a DOCX file, pages are not explicitly defined,
452
+ so we consider each paragraph as a separate 'page' for simplicity.
453
+ """
454
+ import docx
455
+
456
+ doc = docx.Document(self.doc_bytes)
457
+ for i, para in enumerate(doc.paragraphs, start=1):
458
+ yield i, [para]
459
+
460
+ def extract_text_from_page(self, page: Any) -> str:
461
+ """
462
+ Extract text from a given 'page', which in this case is a single paragraph.
463
+
464
+ Args:
465
+ page (list): A list containing a single Paragraph object.
466
+
467
+ Returns:
468
+ str: Extracted text from the paragraph.
469
+ """
470
+ paragraph = page[0]
471
+ return self.fix_text(paragraph.text)
@@ -1,6 +1,6 @@
1
1
  import logging
2
2
  from enum import Enum
3
- from typing import Dict, List
3
+ from typing import Dict, List, Literal
4
4
 
5
5
  import tiktoken
6
6
  from pydantic import BaseSettings
@@ -19,11 +19,13 @@ class Splitter(str, Enum):
19
19
 
20
20
 
21
21
  class PdfParsingConfig(BaseSettings):
22
- library: str = "pdfplumber"
22
+ library: Literal[
23
+ "fitz", "pdfplumber", "pypdf", "unstructured", "haystack"
24
+ ] = "pdfplumber"
23
25
 
24
26
 
25
27
  class DocxParsingConfig(BaseSettings):
26
- library: str = "unstructured"
28
+ library: Literal["python-docx", "unstructured"] = "unstructured"
27
29
 
28
30
 
29
31
  class ParsingConfig(BaseSettings):
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "langroid"
3
- version = "0.1.159"
3
+ version = "0.1.160"
4
4
  description = "Harness LLMs with Multi-Agent Programming"
5
5
  authors = ["Prasad Chalasani <pchalasani@gmail.com>"]
6
6
  readme = "README.md"
@@ -81,6 +81,7 @@ scrapy = "^2.11.0"
81
81
  async-generator = "^1.10"
82
82
  lancedb = "^0.4.1"
83
83
  pytest-redis = "^3.0.2"
84
+ python-docx = "^1.1.0"
84
85
 
85
86
  [tool.poetry.extras]
86
87
  # install these using `poetry install -E [...]` where [...] is one of the extras below
File without changes
File without changes