langroid 0.36.0__tar.gz → 0.37.0__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.
- {langroid-0.36.0 → langroid-0.37.0}/PKG-INFO +33 -16
- {langroid-0.36.0 → langroid-0.37.0}/README.md +13 -5
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/doc_chat_agent.py +14 -10
- {langroid-0.36.0 → langroid-0.37.0}/langroid/embedding_models/models.py +2 -2
- {langroid-0.36.0 → langroid-0.37.0}/langroid/exceptions.py +16 -4
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/code_parser.py +1 -1
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/document_parser.py +167 -64
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/parser.py +11 -7
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/utils.py +2 -2
- langroid-0.37.0/langroid/utils/output/citations.py +61 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/vector_store/base.py +1 -1
- {langroid-0.36.0 → langroid-0.37.0}/langroid/vector_store/chromadb.py +12 -1
- {langroid-0.36.0 → langroid-0.37.0}/langroid/vector_store/qdrantdb.py +1 -1
- {langroid-0.36.0 → langroid-0.37.0}/langroid/vector_store/weaviatedb.py +5 -5
- {langroid-0.36.0 → langroid-0.37.0}/pyproject.toml +24 -11
- langroid-0.36.0/langroid/utils/output/citations.py +0 -41
- {langroid-0.36.0 → langroid-0.37.0}/.gitignore +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/LICENSE +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/base.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/batch.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/callbacks/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/callbacks/chainlit.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/chat_agent.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/chat_document.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/openai_assistant.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/arangodb/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/arangodb/arangodb_agent.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/arangodb/system_messages.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/arangodb/tools.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/arangodb/utils.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/lance_doc_chat_agent.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/lance_rag/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/lance_rag/critic_agent.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/lance_rag/lance_rag_task.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/lance_rag/query_planner_agent.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/lance_tools.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/neo4j/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/neo4j/csv_kg_chat.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/neo4j/neo4j_chat_agent.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/neo4j/system_messages.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/neo4j/tools.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/relevance_extractor_agent.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/retriever_agent.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/sql/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/sql/sql_chat_agent.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/sql/utils/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/sql/utils/description_extractors.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/sql/utils/populate_metadata.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/sql/utils/system_message.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/sql/utils/tools.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/special/table_chat_agent.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/task.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/tool_message.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/tools/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/tools/duckduckgo_search_tool.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/tools/file_tools.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/tools/google_search_tool.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/tools/metaphor_search_tool.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/tools/orchestration.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/tools/recipient_tool.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/tools/retrieval_tool.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/tools/rewind_tool.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/tools/segment_extract_tool.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/agent/xml_tool_message.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/cachedb/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/cachedb/base.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/cachedb/momento_cachedb.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/cachedb/redis_cachedb.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/embedding_models/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/embedding_models/base.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/embedding_models/protoc/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/embedding_models/protoc/embeddings.proto +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/embedding_models/protoc/embeddings_pb2.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/embedding_models/protoc/embeddings_pb2.pyi +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/embedding_models/protoc/embeddings_pb2_grpc.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/embedding_models/remote_embeds.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/language_models/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/language_models/azure_openai.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/language_models/base.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/language_models/config.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/language_models/mock_lm.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/language_models/openai_gpt.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/language_models/prompt_formatter/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/language_models/prompt_formatter/base.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/language_models/prompt_formatter/hf_formatter.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/language_models/prompt_formatter/llama2_formatter.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/language_models/utils.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/mytypes.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/agent_chats.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/para_sentence_split.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/parse_json.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/repo_loader.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/routing.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/search.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/spider.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/table_loader.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/url_loader.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/urls.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/parsing/web_search.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/prompts/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/prompts/dialog.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/prompts/prompts_config.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/prompts/templates.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/py.typed +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/pydantic_v1/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/pydantic_v1/main.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/algorithms/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/algorithms/graph.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/configuration.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/constants.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/git_utils.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/globals.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/logging.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/object_registry.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/output/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/output/printing.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/output/status.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/pandas_utils.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/pydantic_utils.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/system.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/utils/types.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/vector_store/__init__.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/vector_store/lancedb.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/vector_store/meilisearch.py +0 -0
- {langroid-0.36.0 → langroid-0.37.0}/langroid/vector_store/momento.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: langroid
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.37.0
|
4
4
|
Summary: Harness LLMs with Multi-Agent Programming
|
5
5
|
Author-email: Prasad Chalasani <pchalasani@gmail.com>
|
6
6
|
License: MIT
|
@@ -12,6 +12,7 @@ Requires-Dist: async-generator<2.0,>=1.10
|
|
12
12
|
Requires-Dist: bs4<1.0.0,>=0.0.1
|
13
13
|
Requires-Dist: cerebras-cloud-sdk<2.0.0,>=1.1.0
|
14
14
|
Requires-Dist: colorlog<7.0.0,>=6.7.0
|
15
|
+
Requires-Dist: docling<3.0.0,>=2.16.0
|
15
16
|
Requires-Dist: docstring-parser<1.0,>=0.16
|
16
17
|
Requires-Dist: duckduckgo-search<7.0.0,>=6.0.0
|
17
18
|
Requires-Dist: faker<19.0.0,>=18.9.0
|
@@ -32,9 +33,10 @@ Requires-Dist: onnxruntime<2.0.0,>=1.16.1
|
|
32
33
|
Requires-Dist: openai<2.0.0,>=1.45.0
|
33
34
|
Requires-Dist: pandas<3.0.0,>=2.0.3
|
34
35
|
Requires-Dist: prettytable<4.0.0,>=3.8.0
|
35
|
-
Requires-Dist: pydantic<
|
36
|
+
Requires-Dist: pydantic<3.0.0,>=1
|
36
37
|
Requires-Dist: pygithub<2.0.0,>=1.58.1
|
37
38
|
Requires-Dist: pygments<3.0.0,>=2.15.1
|
39
|
+
Requires-Dist: pymupdf4llm<0.1.0,>=0.0.17
|
38
40
|
Requires-Dist: pyparsing<4.0.0,>=3.0.9
|
39
41
|
Requires-Dist: pytest-rerunfailures<16.0,>=15.0
|
40
42
|
Requires-Dist: python-dotenv<2.0.0,>=1.0.0
|
@@ -55,14 +57,15 @@ Provides-Extra: all
|
|
55
57
|
Requires-Dist: arango-datasets<2.0.0,>=1.2.2; extra == 'all'
|
56
58
|
Requires-Dist: chainlit<3.0.0,>=2.0.1; extra == 'all'
|
57
59
|
Requires-Dist: chromadb<=0.4.23,>=0.4.21; extra == 'all'
|
60
|
+
Requires-Dist: docling<3.0.0,>=2.16.0; extra == 'all'
|
58
61
|
Requires-Dist: fastembed<0.4.0,>=0.3.1; extra == 'all'
|
59
|
-
Requires-Dist: huggingface-hub<0.
|
62
|
+
Requires-Dist: huggingface-hub<1.0.0,>=0.21.2; extra == 'all'
|
60
63
|
Requires-Dist: litellm<2.0.0,>=1.30.1; extra == 'all'
|
61
64
|
Requires-Dist: metaphor-python<0.2.0,>=0.1.23; extra == 'all'
|
62
65
|
Requires-Dist: neo4j<6.0.0,>=5.14.1; extra == 'all'
|
63
66
|
Requires-Dist: pdf2image<2.0.0,>=1.17.0; extra == 'all'
|
64
|
-
Requires-Dist: pdfplumber<0.11.0,>=0.10.2; extra == 'all'
|
65
67
|
Requires-Dist: psycopg2<3.0.0,>=2.9.7; extra == 'all'
|
68
|
+
Requires-Dist: pymupdf4llm<0.1.0,>=0.0.17; extra == 'all'
|
66
69
|
Requires-Dist: pymupdf<2.0.0,>=1.23.3; extra == 'all'
|
67
70
|
Requires-Dist: pymysql<2.0.0,>=1.1.0; extra == 'all'
|
68
71
|
Requires-Dist: pypdf>=5.1.0; extra == 'all'
|
@@ -74,7 +77,7 @@ Requires-Dist: sentence-transformers<3.0.0,>=2.2.2; extra == 'all'
|
|
74
77
|
Requires-Dist: sqlalchemy<3.0.0,>=2.0.19; extra == 'all'
|
75
78
|
Requires-Dist: torch<3.0.0,>=2.0.0; extra == 'all'
|
76
79
|
Requires-Dist: transformers<5.0.0,>=4.40.1; extra == 'all'
|
77
|
-
Requires-Dist: unstructured[docx,pdf,pptx]<0.
|
80
|
+
Requires-Dist: unstructured[docx,pdf,pptx]<1.0.0,>=0.16.15; extra == 'all'
|
78
81
|
Requires-Dist: weaviate-client>=4.9.6; extra == 'all'
|
79
82
|
Provides-Extra: arango
|
80
83
|
Requires-Dist: arango-datasets<2.0.0,>=1.2.2; extra == 'arango'
|
@@ -89,13 +92,16 @@ Requires-Dist: psycopg2<3.0.0,>=2.9.7; extra == 'db'
|
|
89
92
|
Requires-Dist: pymysql<2.0.0,>=1.1.0; extra == 'db'
|
90
93
|
Requires-Dist: sqlalchemy<3.0.0,>=2.0.19; extra == 'db'
|
91
94
|
Provides-Extra: doc-chat
|
95
|
+
Requires-Dist: docling<3.0.0,>=2.16.0; extra == 'doc-chat'
|
92
96
|
Requires-Dist: pdf2image<2.0.0,>=1.17.0; extra == 'doc-chat'
|
93
|
-
Requires-Dist:
|
97
|
+
Requires-Dist: pymupdf4llm<0.1.0,>=0.0.17; extra == 'doc-chat'
|
94
98
|
Requires-Dist: pymupdf<2.0.0,>=1.23.3; extra == 'doc-chat'
|
95
99
|
Requires-Dist: pypdf>=5.1.0; extra == 'doc-chat'
|
96
100
|
Requires-Dist: pytesseract<0.4.0,>=0.3.10; extra == 'doc-chat'
|
97
101
|
Requires-Dist: python-docx<2.0.0,>=1.1.0; extra == 'doc-chat'
|
98
|
-
Requires-Dist: unstructured[docx,pdf,pptx]<0.
|
102
|
+
Requires-Dist: unstructured[docx,pdf,pptx]<1.0.0,>=0.16.15; extra == 'doc-chat'
|
103
|
+
Provides-Extra: docling
|
104
|
+
Requires-Dist: docling<3.0.0,>=2.16.0; extra == 'docling'
|
99
105
|
Provides-Extra: docx
|
100
106
|
Requires-Dist: python-docx<2.0.0,>=1.1.0; extra == 'docx'
|
101
107
|
Provides-Extra: fastembed
|
@@ -104,7 +110,7 @@ Provides-Extra: hf-embeddings
|
|
104
110
|
Requires-Dist: sentence-transformers<3.0.0,>=2.2.2; extra == 'hf-embeddings'
|
105
111
|
Requires-Dist: torch<3.0.0,>=2.0.0; extra == 'hf-embeddings'
|
106
112
|
Provides-Extra: hf-transformers
|
107
|
-
Requires-Dist: huggingface-hub<0.
|
113
|
+
Requires-Dist: huggingface-hub<1.0.0,>=0.21.2; extra == 'hf-transformers'
|
108
114
|
Requires-Dist: sentence-transformers<3.0.0,>=2.2.2; extra == 'hf-transformers'
|
109
115
|
Requires-Dist: torch<3.0.0,>=2.0.0; extra == 'hf-transformers'
|
110
116
|
Requires-Dist: transformers<5.0.0,>=4.40.1; extra == 'hf-transformers'
|
@@ -125,13 +131,16 @@ Requires-Dist: pymysql<2.0.0,>=1.1.0; extra == 'mysql'
|
|
125
131
|
Provides-Extra: neo4j
|
126
132
|
Requires-Dist: neo4j<6.0.0,>=5.14.1; extra == 'neo4j'
|
127
133
|
Provides-Extra: pdf-parsers
|
134
|
+
Requires-Dist: docling<3.0.0,>=2.16.0; extra == 'pdf-parsers'
|
128
135
|
Requires-Dist: pdf2image<2.0.0,>=1.17.0; extra == 'pdf-parsers'
|
129
|
-
Requires-Dist:
|
136
|
+
Requires-Dist: pymupdf4llm<0.1.0,>=0.0.17; extra == 'pdf-parsers'
|
130
137
|
Requires-Dist: pymupdf<2.0.0,>=1.23.3; extra == 'pdf-parsers'
|
131
138
|
Requires-Dist: pypdf>=5.1.0; extra == 'pdf-parsers'
|
132
139
|
Requires-Dist: pytesseract<0.4.0,>=0.3.10; extra == 'pdf-parsers'
|
133
140
|
Provides-Extra: postgres
|
134
141
|
Requires-Dist: psycopg2<3.0.0,>=2.9.7; extra == 'postgres'
|
142
|
+
Provides-Extra: pymupdf4llm
|
143
|
+
Requires-Dist: pymupdf4llm<0.1.0,>=0.0.17; extra == 'pymupdf4llm'
|
135
144
|
Provides-Extra: scrapy
|
136
145
|
Requires-Dist: scrapy<3.0.0,>=2.11.0; extra == 'scrapy'
|
137
146
|
Provides-Extra: sql
|
@@ -139,11 +148,11 @@ Requires-Dist: psycopg2<3.0.0,>=2.9.7; extra == 'sql'
|
|
139
148
|
Requires-Dist: pymysql<2.0.0,>=1.1.0; extra == 'sql'
|
140
149
|
Requires-Dist: sqlalchemy<3.0.0,>=2.0.19; extra == 'sql'
|
141
150
|
Provides-Extra: transformers
|
142
|
-
Requires-Dist: huggingface-hub<0.
|
151
|
+
Requires-Dist: huggingface-hub<1.0.0,>=0.21.2; extra == 'transformers'
|
143
152
|
Requires-Dist: torch<3.0.0,>=2.0.0; extra == 'transformers'
|
144
153
|
Requires-Dist: transformers<5.0.0,>=4.40.1; extra == 'transformers'
|
145
154
|
Provides-Extra: unstructured
|
146
|
-
Requires-Dist: unstructured[docx,pdf,pptx]<0.
|
155
|
+
Requires-Dist: unstructured[docx,pdf,pptx]<1.0.0,>=0.16.15; extra == 'unstructured'
|
147
156
|
Provides-Extra: vecdbs
|
148
157
|
Requires-Dist: chromadb<=0.4.23,>=0.4.21; extra == 'vecdbs'
|
149
158
|
Requires-Dist: lancedb<0.9.0,>=0.8.2; extra == 'vecdbs'
|
@@ -292,20 +301,28 @@ teacher_task.run()
|
|
292
301
|
<summary> <b>Click to expand</b></summary>
|
293
302
|
|
294
303
|
- **Jan 2025:**
|
295
|
-
- [0.
|
304
|
+
- [0.36.0](https://github.com/langroid/langroid/releases/tag/0.36.0): Weaviate vector-db support (thanks @abab-dev).
|
305
|
+
- [0.35.0](https://github.com/langroid/langroid/releases/tag/0.35.0): Capture/Stream reasoning content from
|
306
|
+
Reasoning LLMs (e.g. DeepSeek, OpenAI o1) in addition to final answer.
|
307
|
+
- [0.34.0](https://github.com/langroid/langroid/releases/tag/0.34.0): DocChatAgent
|
308
|
+
chunk enrichment to improve retrieval. (collaboration with @dfm88).
|
309
|
+
- [0.33.0](https://github.com/langroid/langroid/releases/tag/0.33.3) Move from Poetry to uv! (thanks @abab-dev).
|
296
310
|
- [0.32.0](https://github.com/langroid/langroid/releases/tag/0.32.0) DeepSeek v3 support.
|
297
311
|
- **Dec 2024:**
|
298
312
|
- [0.31.0](https://github.com/langroid/langroid/releases/tag/0.31.0) Azure OpenAI Embeddings
|
299
|
-
- [0.30.0](https://github.com/langroid/langroid/releases/tag/0.30.0) Llama-cpp embeddings.
|
300
|
-
- [0.29.0](https://github.com/langroid/langroid/releases/tag/0.29.0) Custom Azure OpenAI Client
|
313
|
+
- [0.30.0](https://github.com/langroid/langroid/releases/tag/0.30.0) Llama-cpp embeddings (thanks @Kwigg).
|
314
|
+
- [0.29.0](https://github.com/langroid/langroid/releases/tag/0.29.0) Custom Azure OpenAI Client (thanks
|
315
|
+
@johannestang).
|
301
316
|
- [0.28.0](https://github.com/langroid/langroid/releases/tag/0.28.0) `ToolMessage`: `_handler` field to override
|
302
|
-
default handler method name in `request` field.
|
317
|
+
default handler method name in `request` field (thanks @alexagr).
|
303
318
|
- [0.27.0](https://github.com/langroid/langroid/releases/tag/0.27.0) OpenRouter Support.
|
304
319
|
- [0.26.0](https://github.com/langroid/langroid/releases/tag/0.26.0) Update to latest Chainlit.
|
305
|
-
- [0.25.0](https://github.com/langroid/langroid/releases/tag/0.25.0) True Async Methods for agent and
|
320
|
+
- [0.25.0](https://github.com/langroid/langroid/releases/tag/0.25.0) True Async Methods for agent and
|
321
|
+
user-response (thanks @alexagr).
|
306
322
|
- **Nov 2024:**
|
307
323
|
- **[0.24.0](https://langroid.github.io/langroid/notes/structured-output/)**:
|
308
324
|
Enables support for `Agent`s with strict JSON schema output format on compatible LLMs and strict mode for the OpenAI tools API.
|
325
|
+
(thanks @nilspalumbo).
|
309
326
|
- **[0.23.0](https://langroid.github.io/langroid/tutorials/local-llm-setup/#local-llms-hosted-on-glhfchat)**:
|
310
327
|
support for LLMs (e.g. `Qwen2.5-Coder-32b-Instruct`) hosted on glhf.chat
|
311
328
|
- **[0.22.0](https://langroid.github.io/langroid/notes/large-tool-results/)**:
|
@@ -136,20 +136,28 @@ teacher_task.run()
|
|
136
136
|
<summary> <b>Click to expand</b></summary>
|
137
137
|
|
138
138
|
- **Jan 2025:**
|
139
|
-
- [0.
|
139
|
+
- [0.36.0](https://github.com/langroid/langroid/releases/tag/0.36.0): Weaviate vector-db support (thanks @abab-dev).
|
140
|
+
- [0.35.0](https://github.com/langroid/langroid/releases/tag/0.35.0): Capture/Stream reasoning content from
|
141
|
+
Reasoning LLMs (e.g. DeepSeek, OpenAI o1) in addition to final answer.
|
142
|
+
- [0.34.0](https://github.com/langroid/langroid/releases/tag/0.34.0): DocChatAgent
|
143
|
+
chunk enrichment to improve retrieval. (collaboration with @dfm88).
|
144
|
+
- [0.33.0](https://github.com/langroid/langroid/releases/tag/0.33.3) Move from Poetry to uv! (thanks @abab-dev).
|
140
145
|
- [0.32.0](https://github.com/langroid/langroid/releases/tag/0.32.0) DeepSeek v3 support.
|
141
146
|
- **Dec 2024:**
|
142
147
|
- [0.31.0](https://github.com/langroid/langroid/releases/tag/0.31.0) Azure OpenAI Embeddings
|
143
|
-
- [0.30.0](https://github.com/langroid/langroid/releases/tag/0.30.0) Llama-cpp embeddings.
|
144
|
-
- [0.29.0](https://github.com/langroid/langroid/releases/tag/0.29.0) Custom Azure OpenAI Client
|
148
|
+
- [0.30.0](https://github.com/langroid/langroid/releases/tag/0.30.0) Llama-cpp embeddings (thanks @Kwigg).
|
149
|
+
- [0.29.0](https://github.com/langroid/langroid/releases/tag/0.29.0) Custom Azure OpenAI Client (thanks
|
150
|
+
@johannestang).
|
145
151
|
- [0.28.0](https://github.com/langroid/langroid/releases/tag/0.28.0) `ToolMessage`: `_handler` field to override
|
146
|
-
default handler method name in `request` field.
|
152
|
+
default handler method name in `request` field (thanks @alexagr).
|
147
153
|
- [0.27.0](https://github.com/langroid/langroid/releases/tag/0.27.0) OpenRouter Support.
|
148
154
|
- [0.26.0](https://github.com/langroid/langroid/releases/tag/0.26.0) Update to latest Chainlit.
|
149
|
-
- [0.25.0](https://github.com/langroid/langroid/releases/tag/0.25.0) True Async Methods for agent and
|
155
|
+
- [0.25.0](https://github.com/langroid/langroid/releases/tag/0.25.0) True Async Methods for agent and
|
156
|
+
user-response (thanks @alexagr).
|
150
157
|
- **Nov 2024:**
|
151
158
|
- **[0.24.0](https://langroid.github.io/langroid/notes/structured-output/)**:
|
152
159
|
Enables support for `Agent`s with strict JSON schema output format on compatible LLMs and strict mode for the OpenAI tools API.
|
160
|
+
(thanks @nilspalumbo).
|
153
161
|
- **[0.23.0](https://langroid.github.io/langroid/tutorials/local-llm-setup/#local-llms-hosted-on-glhfchat)**:
|
154
162
|
support for LLMs (e.g. `Qwen2.5-Coder-32b-Instruct`) hosted on glhf.chat
|
155
163
|
- **[0.22.0](https://langroid.github.io/langroid/notes/large-tool-results/)**:
|
@@ -15,6 +15,7 @@ pip install "langroid[hf-embeddings]"
|
|
15
15
|
"""
|
16
16
|
|
17
17
|
import logging
|
18
|
+
import textwrap
|
18
19
|
from collections import OrderedDict
|
19
20
|
from functools import cache
|
20
21
|
from typing import Any, Callable, Dict, List, Optional, Set, Tuple, no_type_check
|
@@ -81,7 +82,7 @@ You will be given various passages from these documents, and asked to answer que
|
|
81
82
|
about them, or summarize them into coherent answers.
|
82
83
|
"""
|
83
84
|
|
84
|
-
CHUNK_ENRICHMENT_DELIMITER = "<##-##-##>"
|
85
|
+
CHUNK_ENRICHMENT_DELIMITER = "\n<##-##-##>"
|
85
86
|
|
86
87
|
has_sentence_transformers = False
|
87
88
|
try:
|
@@ -99,7 +100,7 @@ hf_embed_config = SentenceTransformerEmbeddingsConfig(
|
|
99
100
|
|
100
101
|
oai_embed_config = OpenAIEmbeddingsConfig(
|
101
102
|
model_type="openai",
|
102
|
-
model_name="text-embedding-
|
103
|
+
model_name="text-embedding-3-small",
|
103
104
|
dims=1536,
|
104
105
|
)
|
105
106
|
|
@@ -188,8 +189,8 @@ class DocChatAgentConfig(ChatAgentConfig):
|
|
188
189
|
# NOTE: PDF parsing is extremely challenging, and each library
|
189
190
|
# has its own strengths and weaknesses.
|
190
191
|
# Try one that works for your use case.
|
191
|
-
# or "unstructured", "
|
192
|
-
library="
|
192
|
+
# or "unstructured", "fitz", "pymupdf4llm", "pypdf"
|
193
|
+
library="pymupdf4llm",
|
193
194
|
),
|
194
195
|
)
|
195
196
|
|
@@ -810,9 +811,11 @@ class DocChatAgent(ChatAgent):
|
|
810
811
|
return "\n".join(
|
811
812
|
[
|
812
813
|
f"""
|
813
|
-
[{i+1}]
|
814
|
+
-----[EXTRACT #{i+1}]----------
|
814
815
|
{content}
|
815
816
|
{source}
|
817
|
+
-----END OF EXTRACT------------
|
818
|
+
|
816
819
|
"""
|
817
820
|
for i, (content, source) in enumerate(zip(contents, sources))
|
818
821
|
]
|
@@ -949,12 +952,13 @@ class DocChatAgent(ChatAgent):
|
|
949
952
|
continue
|
950
953
|
|
951
954
|
# Combine original content with questions in a structured way
|
952
|
-
combined_content =
|
953
|
-
|
954
|
-
|
955
|
+
combined_content = textwrap.dedent(
|
956
|
+
f"""\
|
957
|
+
{doc.content}
|
955
958
|
{enrichment_config.delimiter}
|
956
959
|
{enrichment}
|
957
|
-
"""
|
960
|
+
"""
|
961
|
+
)
|
958
962
|
|
959
963
|
new_doc = doc.copy(
|
960
964
|
update={
|
@@ -1440,7 +1444,7 @@ class DocChatAgent(ChatAgent):
|
|
1440
1444
|
delimiter = self.config.chunk_enrichment_config.delimiter
|
1441
1445
|
return [
|
1442
1446
|
(
|
1443
|
-
doc.copy(update={"content": doc.content.split(delimiter)[0]
|
1447
|
+
doc.copy(update={"content": doc.content.split(delimiter)[0]})
|
1444
1448
|
if doc.content and getattr(doc.metadata, "has_enrichment", False)
|
1445
1449
|
else doc
|
1446
1450
|
)
|
@@ -18,7 +18,7 @@ AzureADTokenProvider = Callable[[], str]
|
|
18
18
|
|
19
19
|
class OpenAIEmbeddingsConfig(EmbeddingModelsConfig):
|
20
20
|
model_type: str = "openai"
|
21
|
-
model_name: str = "text-embedding-
|
21
|
+
model_name: str = "text-embedding-3-large"
|
22
22
|
api_key: str = ""
|
23
23
|
api_base: Optional[str] = None
|
24
24
|
organization: str = ""
|
@@ -28,7 +28,7 @@ class OpenAIEmbeddingsConfig(EmbeddingModelsConfig):
|
|
28
28
|
|
29
29
|
class AzureOpenAIEmbeddingsConfig(EmbeddingModelsConfig):
|
30
30
|
model_type: str = "azure-openai"
|
31
|
-
model_name: str = "text-embedding-
|
31
|
+
model_name: str = "text-embedding-3-large"
|
32
32
|
api_key: str = ""
|
33
33
|
api_base: str = ""
|
34
34
|
deployment_name: Optional[str] = None
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import Optional
|
1
|
+
from typing import List, Optional
|
2
2
|
|
3
3
|
|
4
4
|
class XMLException(Exception):
|
@@ -15,7 +15,7 @@ class LangroidImportError(ImportError):
|
|
15
15
|
def __init__(
|
16
16
|
self,
|
17
17
|
package: Optional[str] = None,
|
18
|
-
extra: Optional[str] = None,
|
18
|
+
extra: Optional[str | List[str]] = None,
|
19
19
|
error: str = "",
|
20
20
|
*args: object,
|
21
21
|
) -> None:
|
@@ -33,9 +33,21 @@ class LangroidImportError(ImportError):
|
|
33
33
|
error = f"{package} is not installed by default with Langroid.\n"
|
34
34
|
|
35
35
|
if extra:
|
36
|
+
if isinstance(extra, list):
|
37
|
+
help_preamble = f"""
|
38
|
+
If you want to use it, please install langroid with one of these
|
39
|
+
extras: {', '.join(extra)}. The examples below use the first one,
|
40
|
+
i.e. {extra[0]}.
|
41
|
+
"""
|
42
|
+
extra = extra[0]
|
43
|
+
else:
|
44
|
+
help_preamble = f"""
|
45
|
+
If you want to use it, please install langroid with the
|
46
|
+
`{extra}` extra.
|
47
|
+
"""
|
48
|
+
|
36
49
|
install_help = f"""
|
37
|
-
|
38
|
-
with the `{extra}` extra, for example:
|
50
|
+
{help_preamble}
|
39
51
|
|
40
52
|
If you are using pip:
|
41
53
|
pip install "langroid[{extra}]"
|