langroid 0.59.0b3__py3-none-any.whl → 0.59.2__py3-none-any.whl
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/agent/done_sequence_parser.py +46 -11
- langroid/agent/special/doc_chat_task.py +0 -0
- langroid/agent/task.py +44 -7
- langroid/language_models/model_info.py +51 -0
- langroid/mcp/__init__.py +1 -0
- langroid/mcp/server/__init__.py +1 -0
- langroid/pydantic_v1/__init__.py +1 -1
- {langroid-0.59.0b3.dist-info → langroid-0.59.2.dist-info}/METADATA +4 -1
- {langroid-0.59.0b3.dist-info → langroid-0.59.2.dist-info}/RECORD +11 -47
- langroid/agent/base.py-e +0 -2216
- langroid/agent/chat_agent.py-e +0 -2086
- langroid/agent/chat_document.py-e +0 -513
- langroid/agent/openai_assistant.py-e +0 -882
- langroid/agent/special/arangodb/arangodb_agent.py-e +0 -648
- langroid/agent/special/lance_tools.py-e +0 -61
- langroid/agent/special/neo4j/neo4j_chat_agent.py-e +0 -430
- langroid/agent/task.py-e +0 -2418
- langroid/agent/tool_message.py-e +0 -400
- langroid/agent/tools/file_tools.py-e +0 -234
- langroid/agent/tools/mcp/fastmcp_client.py-e +0 -584
- langroid/agent/tools/orchestration.py-e +0 -301
- langroid/agent/tools/task_tool.py-e +0 -249
- langroid/agent/xml_tool_message.py-e +0 -392
- langroid/embedding_models/models.py-e +0 -563
- langroid/language_models/azure_openai.py-e +0 -134
- langroid/language_models/base.py-e +0 -812
- langroid/language_models/config.py-e +0 -18
- langroid/language_models/model_info.py-e +0 -483
- langroid/language_models/openai_gpt.py-e +0 -2280
- langroid/language_models/provider_params.py-e +0 -153
- langroid/mytypes.py-e +0 -132
- langroid/parsing/file_attachment.py-e +0 -246
- langroid/parsing/md_parser.py-e +0 -574
- langroid/parsing/parser.py-e +0 -410
- langroid/parsing/repo_loader.py-e +0 -812
- langroid/parsing/url_loader.py-e +0 -683
- langroid/parsing/urls.py-e +0 -279
- langroid/pydantic_v1/__init__.py-e +0 -36
- langroid/pydantic_v1/main.py-e +0 -11
- langroid/utils/configuration.py-e +0 -141
- langroid/utils/constants.py-e +0 -32
- langroid/utils/globals.py-e +0 -49
- langroid/utils/html_logger.py-e +0 -825
- langroid/utils/object_registry.py-e +0 -66
- langroid/utils/pydantic_utils.py-e +0 -602
- langroid/utils/types.py-e +0 -113
- langroid/vector_store/lancedb.py-e +0 -404
- langroid/vector_store/pineconedb.py-e +0 -427
- {langroid-0.59.0b3.dist-info → langroid-0.59.2.dist-info}/WHEEL +0 -0
- {langroid-0.59.0b3.dist-info → langroid-0.59.2.dist-info}/licenses/LICENSE +0 -0
@@ -11,16 +11,20 @@ Examples:
|
|
11
11
|
"""
|
12
12
|
|
13
13
|
import re
|
14
|
-
from typing import List, Union
|
14
|
+
from typing import Any, Dict, List, Optional, Union
|
15
15
|
|
16
16
|
from .task import AgentEvent, DoneSequence, EventType
|
17
17
|
|
18
18
|
|
19
|
-
def parse_done_sequence(
|
19
|
+
def parse_done_sequence(
|
20
|
+
sequence: Union[str, DoneSequence], tools_map: Optional[Dict[str, Any]] = None
|
21
|
+
) -> DoneSequence:
|
20
22
|
"""Parse a string pattern or return existing DoneSequence unchanged.
|
21
23
|
|
22
24
|
Args:
|
23
25
|
sequence: Either a DoneSequence object or a string pattern to parse
|
26
|
+
tools_map: Optional dict mapping tool names to tool classes
|
27
|
+
(e.g., agent.llm_tools_map)
|
24
28
|
|
25
29
|
Returns:
|
26
30
|
DoneSequence object
|
@@ -34,21 +38,25 @@ def parse_done_sequence(sequence: Union[str, DoneSequence]) -> DoneSequence:
|
|
34
38
|
if not isinstance(sequence, str):
|
35
39
|
raise ValueError(f"Expected string or DoneSequence, got {type(sequence)}")
|
36
40
|
|
37
|
-
events = _parse_string_pattern(sequence)
|
41
|
+
events = _parse_string_pattern(sequence, tools_map)
|
38
42
|
return DoneSequence(events=events)
|
39
43
|
|
40
44
|
|
41
|
-
def _parse_string_pattern(
|
45
|
+
def _parse_string_pattern(
|
46
|
+
pattern: str, tools_map: Optional[Dict[str, Any]] = None
|
47
|
+
) -> List[AgentEvent]:
|
42
48
|
"""Parse a string pattern into a list of AgentEvent objects.
|
43
49
|
|
44
50
|
Pattern format:
|
45
51
|
- Single letter codes: T, A, L, U, N, C
|
46
|
-
- Specific tools: T[tool_name]
|
52
|
+
- Specific tools: T[tool_name] or T[ToolClass]
|
47
53
|
- Content match: C[regex_pattern]
|
48
54
|
- Separated by commas, spaces allowed
|
49
55
|
|
50
56
|
Args:
|
51
57
|
pattern: String pattern to parse
|
58
|
+
tools_map: Optional dict mapping tool names to tool classes
|
59
|
+
(e.g., agent.llm_tools_map)
|
52
60
|
|
53
61
|
Returns:
|
54
62
|
List of AgentEvent objects
|
@@ -65,7 +73,7 @@ def _parse_string_pattern(pattern: str) -> List[AgentEvent]:
|
|
65
73
|
if not part:
|
66
74
|
continue
|
67
75
|
|
68
|
-
event = _parse_event_token(part)
|
76
|
+
event = _parse_event_token(part, tools_map)
|
69
77
|
events.append(event)
|
70
78
|
|
71
79
|
if not events:
|
@@ -74,11 +82,15 @@ def _parse_string_pattern(pattern: str) -> List[AgentEvent]:
|
|
74
82
|
return events
|
75
83
|
|
76
84
|
|
77
|
-
def _parse_event_token(
|
85
|
+
def _parse_event_token(
|
86
|
+
token: str, tools_map: Optional[Dict[str, Any]] = None
|
87
|
+
) -> AgentEvent:
|
78
88
|
"""Parse a single event token into an AgentEvent.
|
79
89
|
|
80
90
|
Args:
|
81
91
|
token: Single event token (e.g., "T", "T[calc]", "C[quit|exit]")
|
92
|
+
tools_map: Optional dict mapping tool names to tool classes
|
93
|
+
(e.g., agent.llm_tools_map)
|
82
94
|
|
83
95
|
Returns:
|
84
96
|
AgentEvent object
|
@@ -94,8 +106,28 @@ def _parse_event_token(token: str) -> AgentEvent:
|
|
94
106
|
param = bracket_match.group(2)
|
95
107
|
|
96
108
|
if event_code == "T":
|
97
|
-
# Specific tool: T[tool_name]
|
98
|
-
|
109
|
+
# Specific tool: T[tool_name] or T[ToolClass]
|
110
|
+
tool_class = None
|
111
|
+
tool_name = param
|
112
|
+
|
113
|
+
# First try direct lookup in tools_map by the param (tool name)
|
114
|
+
if tools_map and param in tools_map:
|
115
|
+
tool_class = tools_map[param]
|
116
|
+
tool_name = param
|
117
|
+
elif tools_map:
|
118
|
+
# If not found, loop through tools_map to find a tool class
|
119
|
+
# whose __name__ matches param
|
120
|
+
for name, cls in tools_map.items():
|
121
|
+
if hasattr(cls, "__name__") and cls.__name__ == param:
|
122
|
+
tool_class = cls
|
123
|
+
tool_name = name
|
124
|
+
break
|
125
|
+
|
126
|
+
return AgentEvent(
|
127
|
+
event_type=EventType.SPECIFIC_TOOL,
|
128
|
+
tool_name=tool_name,
|
129
|
+
tool_class=tool_class,
|
130
|
+
)
|
99
131
|
elif event_code == "C":
|
100
132
|
# Content match: C[regex_pattern]
|
101
133
|
return AgentEvent(event_type=EventType.CONTENT_MATCH, content_pattern=param)
|
@@ -136,14 +168,17 @@ def _parse_event_token(token: str) -> AgentEvent:
|
|
136
168
|
|
137
169
|
|
138
170
|
def parse_done_sequences(
|
139
|
-
sequences: List[Union[str, DoneSequence]]
|
171
|
+
sequences: List[Union[str, DoneSequence]],
|
172
|
+
tools_map: Optional[Dict[str, Any]] = None,
|
140
173
|
) -> List[DoneSequence]:
|
141
174
|
"""Parse a list of mixed string patterns and DoneSequence objects.
|
142
175
|
|
143
176
|
Args:
|
144
177
|
sequences: List containing strings and/or DoneSequence objects
|
178
|
+
tools_map: Optional dict mapping tool names to tool classes
|
179
|
+
(e.g., agent.llm_tools_map)
|
145
180
|
|
146
181
|
Returns:
|
147
182
|
List of DoneSequence objects
|
148
183
|
"""
|
149
|
-
return [parse_done_sequence(seq) for seq in sequences]
|
184
|
+
return [parse_done_sequence(seq, tools_map) for seq in sequences]
|
File without changes
|
langroid/agent/task.py
CHANGED
@@ -90,6 +90,9 @@ class AgentEvent(BaseModel):
|
|
90
90
|
|
91
91
|
event_type: EventType
|
92
92
|
tool_name: Optional[str] = None # For SPECIFIC_TOOL
|
93
|
+
tool_class: Optional[Type[Any]] = (
|
94
|
+
None # For storing tool class references when using SPECIFIC_TOOL events
|
95
|
+
)
|
93
96
|
content_pattern: Optional[str] = None # For CONTENT_MATCH (regex)
|
94
97
|
responder: Optional[str] = None # Specific responder name
|
95
98
|
# Optionally match only if the responder was specific entity/task
|
@@ -146,6 +149,7 @@ class TaskConfig(BaseModel):
|
|
146
149
|
done_sequences (List[DoneSequence]): List of event sequences that trigger task
|
147
150
|
completion. Task is done if ANY sequence matches the recent event history.
|
148
151
|
Each sequence is checked against the message parent chain.
|
152
|
+
Tool classes can be referenced in sequences like "T[MyToolClass]".
|
149
153
|
|
150
154
|
"""
|
151
155
|
|
@@ -298,14 +302,8 @@ class Task:
|
|
298
302
|
set_parent_agent=noop_fn,
|
299
303
|
)
|
300
304
|
self.config = config
|
301
|
-
# Store parsed done sequences
|
305
|
+
# Store parsed done sequences (will be initialized after agent assignment)
|
302
306
|
self._parsed_done_sequences: Optional[List[DoneSequence]] = None
|
303
|
-
if self.config.done_sequences:
|
304
|
-
from .done_sequence_parser import parse_done_sequences
|
305
|
-
|
306
|
-
self._parsed_done_sequences = parse_done_sequences(
|
307
|
-
self.config.done_sequences
|
308
|
-
)
|
309
307
|
# how to behave as a sub-task; can be overridden by `add_sub_task()`
|
310
308
|
self.config_sub_task = copy.deepcopy(config)
|
311
309
|
# counts of distinct pending messages in history,
|
@@ -340,6 +338,21 @@ class Task:
|
|
340
338
|
self.agent.set_system_message(system_message)
|
341
339
|
if user_message:
|
342
340
|
self.agent.set_user_message(user_message)
|
341
|
+
|
342
|
+
# Initialize parsed done sequences now that self.agent is available
|
343
|
+
if self.config.done_sequences:
|
344
|
+
from .done_sequence_parser import parse_done_sequences
|
345
|
+
|
346
|
+
# Pass agent's llm_tools_map directly
|
347
|
+
tools_map = (
|
348
|
+
self.agent.llm_tools_map
|
349
|
+
if hasattr(self.agent, "llm_tools_map")
|
350
|
+
else None
|
351
|
+
)
|
352
|
+
self._parsed_done_sequences = parse_done_sequences(
|
353
|
+
self.config.done_sequences, tools_map
|
354
|
+
)
|
355
|
+
|
343
356
|
self.max_cost: float = 0
|
344
357
|
self.max_tokens: int = 0
|
345
358
|
self.session_id: str = ""
|
@@ -2331,8 +2344,32 @@ class Task:
|
|
2331
2344
|
if expected.event_type == EventType.SPECIFIC_TOOL:
|
2332
2345
|
if actual.event_type != EventType.TOOL:
|
2333
2346
|
return False
|
2347
|
+
|
2348
|
+
# First try tool_class matching if available
|
2349
|
+
if expected.tool_class is not None:
|
2350
|
+
# Handle case where actual.tool_class might be a class instance
|
2351
|
+
if hasattr(actual, "tool_class") and actual.tool_class is not None:
|
2352
|
+
# If actual.tool_class is an instance, get its class
|
2353
|
+
if isinstance(actual.tool_class, type):
|
2354
|
+
actual_class = actual.tool_class
|
2355
|
+
else:
|
2356
|
+
actual_class = type(actual.tool_class)
|
2357
|
+
|
2358
|
+
# Compare the tool classes
|
2359
|
+
if actual_class == expected.tool_class:
|
2360
|
+
return True
|
2361
|
+
# Also check if actual tool is an instance of expected class
|
2362
|
+
if not isinstance(actual.tool_class, type) and isinstance(
|
2363
|
+
actual.tool_class, expected.tool_class
|
2364
|
+
):
|
2365
|
+
return True
|
2366
|
+
|
2367
|
+
# If tool_class comparison didn't match, continue to tool_name fallback
|
2368
|
+
|
2369
|
+
# Fall back to tool_name comparison for backwards compatibility
|
2334
2370
|
if expected.tool_name and actual.tool_name != expected.tool_name:
|
2335
2371
|
return False
|
2372
|
+
|
2336
2373
|
elif actual.event_type != expected.event_type:
|
2337
2374
|
return False
|
2338
2375
|
if expected.sender and actual.sender != expected.sender:
|
@@ -36,6 +36,9 @@ class OpenAIChatModel(ModelName):
|
|
36
36
|
GPT4_1 = "gpt-4.1"
|
37
37
|
GPT4_1_MINI = "gpt-4.1-mini"
|
38
38
|
GPT4_1_NANO = "gpt-4.1-nano"
|
39
|
+
GPT5 = "gpt-5"
|
40
|
+
GPT5_MINI = "gpt-5-mini"
|
41
|
+
GPT5_NANO = "gpt-5-nano"
|
39
42
|
|
40
43
|
|
41
44
|
class OpenAICompletionModel(str, Enum):
|
@@ -305,6 +308,54 @@ MODEL_INFO: Dict[str, ModelInfo] = {
|
|
305
308
|
has_tools=False,
|
306
309
|
description="O3 Mini Reasoning LM",
|
307
310
|
),
|
311
|
+
OpenAIChatModel.GPT5.value: ModelInfo(
|
312
|
+
name=OpenAIChatModel.GPT5.value,
|
313
|
+
provider=ModelProvider.OPENAI,
|
314
|
+
context_length=400_000,
|
315
|
+
max_output_tokens=128_000,
|
316
|
+
input_cost_per_million=1.25,
|
317
|
+
cached_cost_per_million=0.125,
|
318
|
+
output_cost_per_million=10.00,
|
319
|
+
allows_streaming=False,
|
320
|
+
allows_system_message=False,
|
321
|
+
has_structured_output=True,
|
322
|
+
unsupported_params=["temperature"],
|
323
|
+
rename_params={"max_tokens": "max_completion_tokens"},
|
324
|
+
has_tools=False,
|
325
|
+
description="GPT-5",
|
326
|
+
),
|
327
|
+
OpenAIChatModel.GPT5_MINI.value: ModelInfo(
|
328
|
+
name=OpenAIChatModel.GPT5_MINI.value,
|
329
|
+
provider=ModelProvider.OPENAI,
|
330
|
+
context_length=400_000,
|
331
|
+
max_output_tokens=128_000,
|
332
|
+
input_cost_per_million=0.25,
|
333
|
+
cached_cost_per_million=0.025,
|
334
|
+
output_cost_per_million=2.00,
|
335
|
+
allows_streaming=False,
|
336
|
+
allows_system_message=False,
|
337
|
+
has_structured_output=True,
|
338
|
+
unsupported_params=["temperature"],
|
339
|
+
rename_params={"max_tokens": "max_completion_tokens"},
|
340
|
+
has_tools=False,
|
341
|
+
description="GPT-5 Mini",
|
342
|
+
),
|
343
|
+
OpenAIChatModel.GPT5_NANO.value: ModelInfo(
|
344
|
+
name=OpenAIChatModel.GPT5_NANO.value,
|
345
|
+
provider=ModelProvider.OPENAI,
|
346
|
+
context_length=400_000,
|
347
|
+
max_output_tokens=128_000,
|
348
|
+
input_cost_per_million=0.05,
|
349
|
+
cached_cost_per_million=0.005,
|
350
|
+
output_cost_per_million=0.40,
|
351
|
+
allows_streaming=False,
|
352
|
+
allows_system_message=False,
|
353
|
+
has_structured_output=True,
|
354
|
+
unsupported_params=["temperature"],
|
355
|
+
rename_params={"max_tokens": "max_completion_tokens"},
|
356
|
+
has_tools=False,
|
357
|
+
description="GPT-5 Nano",
|
358
|
+
),
|
308
359
|
# Anthropic Models
|
309
360
|
AnthropicModel.CLAUDE_3_5_SONNET.value: ModelInfo(
|
310
361
|
name=AnthropicModel.CLAUDE_3_5_SONNET.value,
|
langroid/mcp/__init__.py
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"""MCP (Model Context Protocol) integration for Langroid."""
|
@@ -0,0 +1 @@
|
|
1
|
+
"""MCP server implementation for Langroid."""
|
langroid/pydantic_v1/__init__.py
CHANGED
@@ -45,7 +45,7 @@ try:
|
|
45
45
|
from pydantic_settings import BaseSettings # noqa: F401
|
46
46
|
except ImportError:
|
47
47
|
# Fallback for older pydantic versions
|
48
|
-
from pydantic import BaseSettings # noqa: F401
|
48
|
+
from pydantic import BaseSettings # type: ignore[no-redef] # noqa: F401
|
49
49
|
|
50
50
|
# Explicitly export all items for mypy
|
51
51
|
__all__ = [
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: langroid
|
3
|
-
Version: 0.59.
|
3
|
+
Version: 0.59.2
|
4
4
|
Summary: Harness LLMs with Multi-Agent Programming
|
5
5
|
Author-email: Prasad Chalasani <pchalasani@gmail.com>
|
6
6
|
License: MIT
|
@@ -347,6 +347,9 @@ teacher_task.run()
|
|
347
347
|
<details>
|
348
348
|
<summary> <b>Click to expand</b></summary>
|
349
349
|
|
350
|
+
- **Aug 2025:**
|
351
|
+
- [0.59.0](https://github.com/langroid/langroid/releases/tag/0.59.0) Complete Pydantic V2 Migration -
|
352
|
+
5-50x faster validation, modern Python patterns, 100% backward compatible.
|
350
353
|
- **Jul 2025:**
|
351
354
|
- [0.58.0](https://github.com/langroid/langroid/releases/tag/0.58.0) Crawl4AI integration -
|
352
355
|
browser-based web crawling with Playwright for JavaScript-heavy sites, no API key required (thank you @abab-dev!).
|
@@ -1,38 +1,29 @@
|
|
1
1
|
langroid/__init__.py,sha256=z_fCOLQJPOw3LLRPBlFB5-2HyCjpPgQa4m4iY5Fvb8Y,1800
|
2
2
|
langroid/exceptions.py,sha256=9Kroide4tNeEbH-cw-2KWeATcas0NFW0bGE0yrFznmE,3038
|
3
3
|
langroid/mytypes.py,sha256=UfPfDhA0fvjSr4xJn-3EbnTZ-yNUilag4mjepnXfnQo,4271
|
4
|
-
langroid/mytypes.py-e,sha256=vaN7TJ6j4noYHEn4whoeBSofHPp1EJZrOMNJh5KG7Aw,4006
|
5
4
|
langroid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
5
|
langroid/agent/__init__.py,sha256=ll0Cubd2DZ-fsCMl7e10hf9ZjFGKzphfBco396IKITY,786
|
7
6
|
langroid/agent/base.py,sha256=mP57z3QiOm8Y7tG_OHpyvcsWmoq-4WSrHxAiiwgtsX8,87307
|
8
|
-
langroid/agent/base.py-e,sha256=pLR8DNEC030jDAyGAv6BaRltvGD30Rk6ip4GckfHx_c,86329
|
9
7
|
langroid/agent/batch.py,sha256=wpE9RqCNDVDhAXkCB7wEqfCIEAi6qKcrhaZ-Zr9T4C0,21375
|
10
8
|
langroid/agent/chat_agent.py,sha256=wTR9PPbUZb4utOhKvAFebTOVkzJrySbhRdrrwqiceXg,89944
|
11
|
-
langroid/agent/chat_agent.py-e,sha256=3TujzioxCNxfhCTz7jQyf4Cie4GkbcEIfysS_LvW8Ow,89129
|
12
9
|
langroid/agent/chat_document.py,sha256=bgNGfgyvTqPqUV8093IYRJ7jLNlOEctEvjnwdVUApaI,19748
|
13
|
-
langroid/agent/
|
14
|
-
langroid/agent/done_sequence_parser.py,sha256=oUPzQCkkAo-5qos3ndSV47Lre7O_LoGWwTybjE9sCwc,4381
|
10
|
+
langroid/agent/done_sequence_parser.py,sha256=99UZoLknQx0AZzX-hGp03MfUxHomrMTLcyekpC25JoU,5845
|
15
11
|
langroid/agent/openai_assistant.py,sha256=v__MWg0jhEOQVplKh1urU2Dq4VZonHV0G3CuGiHFw7o,34386
|
16
|
-
langroid/agent/
|
17
|
-
langroid/agent/task.py,sha256=5Kmvp-SyiB5k8KgfFwPVmmZ0IQ4WAVJSLcUhEdPPsd8,103325
|
18
|
-
langroid/agent/task.py-e,sha256=gpYV-HK6rlHhZjCtYhh5-kuJO0FDCWBV4CqXeRspyTw,103359
|
12
|
+
langroid/agent/task.py,sha256=sY0PwqlMb3OXTMxEVoiBxDqZcyqKWTVg721iJbUqbxU,105021
|
19
13
|
langroid/agent/tool_message.py,sha256=BPygVQPDAJ5xFDQopHqBx_2DixA3m7mwDwgWMiZWYeM,15327
|
20
|
-
langroid/agent/tool_message.py-e,sha256=UCmhWAgQgTxq_tZnn9J6Hg241uCUvagi6uWTvH9M_kw,14948
|
21
14
|
langroid/agent/xml_tool_message.py,sha256=b5zyYuQS8bduVNoe-jOjy7iLB5VOMvbGfD_A5Zp7ans,17730
|
22
|
-
langroid/agent/xml_tool_message.py-e,sha256=jzmsnnzFvhIy6OlfS4abAeu_jtECymaTcUyvCS2SIU8,15501
|
23
15
|
langroid/agent/callbacks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
24
16
|
langroid/agent/callbacks/chainlit.py,sha256=nRCTkYDgTiBPP8Cg2ct8dLUBDevLMO4w0jv0GfQQq2U,20960
|
25
17
|
langroid/agent/special/__init__.py,sha256=gik_Xtm_zV7U9s30Mn8UX3Gyuy4jTjQe9zjiE3HWmEo,1273
|
26
18
|
langroid/agent/special/doc_chat_agent.py,sha256=tUr4qex3OjqF32zeyvTOnNgUP1wdpe5hoZ8bH1IisJQ,68962
|
19
|
+
langroid/agent/special/doc_chat_task.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
27
20
|
langroid/agent/special/lance_doc_chat_agent.py,sha256=6pIqi2DF-MvYYN3-blsdUgulYnOBTl7I21T7wPAt1zM,10413
|
28
21
|
langroid/agent/special/lance_tools.py,sha256=3j7Hsyf3-H9ccTXjyNOcnMnpJ7r1lXnqDLSMQgFa7ZI,2114
|
29
|
-
langroid/agent/special/lance_tools.py-e,sha256=uodIhfcXmhbCoyKY-VVWbqex1QrODiVqHCcyQ7wTgjQ,2093
|
30
22
|
langroid/agent/special/relevance_extractor_agent.py,sha256=Wa65UReGaNIB5MkXugzc4X9ci3c21-PwDrN7zNX-iVQ,4801
|
31
23
|
langroid/agent/special/retriever_agent.py,sha256=o2UfqiCGME0t85SZ6qjK041_WZYqXSuV1SeH_3KtVuc,1931
|
32
24
|
langroid/agent/special/table_chat_agent.py,sha256=T2YMFpOnW4YV-QXvB34MbaBGXBPiWeCiqO1bVKFykbg,10943
|
33
25
|
langroid/agent/special/arangodb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
34
26
|
langroid/agent/special/arangodb/arangodb_agent.py,sha256=_5LsM3otXJGIImdkgHlsuptFpjzVWsiNjlU9tIbOCHo,25631
|
35
|
-
langroid/agent/special/arangodb/arangodb_agent.py-e,sha256=vOj689GiN3LmrcrzCPxCkwMq2r1M1yQw6nW43Fw9E3w,25603
|
36
27
|
langroid/agent/special/arangodb/system_messages.py,sha256=udwfLleTdyz_DuxHuoiv2wHEZoAPBPbwdF_ivjIfP5c,6867
|
37
28
|
langroid/agent/special/arangodb/tools.py,sha256=Mc8wQCnNDFu5lmf-N2jX2dB_iEqXxpyStlM_cxbxgWU,3605
|
38
29
|
langroid/agent/special/arangodb/utils.py,sha256=LIevtkayIdVVXyj3jlbKH2WgdZTtH5-JLgbXOHC7uxs,1420
|
@@ -43,7 +34,6 @@ langroid/agent/special/lance_rag/query_planner_agent.py,sha256=FOtcGh_L6uJD8Bf-D
|
|
43
34
|
langroid/agent/special/neo4j/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
44
35
|
langroid/agent/special/neo4j/csv_kg_chat.py,sha256=dRsAgMBa1H_EMI2YYgJR2Xyv1D7e4o3G9M64mTewq_c,6409
|
45
36
|
langroid/agent/special/neo4j/neo4j_chat_agent.py,sha256=MyNE-6XWJZ00ohRK14Dj6hycf0PUFRY-YDmJ5lTCKy0,16566
|
46
|
-
langroid/agent/special/neo4j/neo4j_chat_agent.py-e,sha256=aGWGXXXuRvB6gZM6spRPx4-jt5DOxtrDABuVXgJM-Wg,16551
|
47
37
|
langroid/agent/special/neo4j/system_messages.py,sha256=m2jsVayey6E_88F5B_gW2WbWKBJvIeDUoVCRBbNs97o,4522
|
48
38
|
langroid/agent/special/neo4j/tools.py,sha256=Vw3HvtDfG2c4_bUHgt4_ZbJq48lpIQstbjjwhh1BjrQ,905
|
49
39
|
langroid/agent/special/sql/__init__.py,sha256=mWfmm1QpXCezpFOS2eI57M0L_Ok3q5_ukG8tXBnBrEA,319
|
@@ -57,29 +47,24 @@ langroid/agent/tools/__init__.py,sha256=IMgCte-_ZIvCkozGQmvMqxIw7_nKLKzD78ccJL1b
|
|
57
47
|
langroid/agent/tools/duckduckgo_search_tool.py,sha256=NhsCaGZkdv28nja7yveAhSK_w6l_Ftym8agbrdzqgfo,1935
|
58
48
|
langroid/agent/tools/exa_search_tool.py,sha256=qxDs6vIiUtFyfX6gmS-PxoCXes-55in3ef5AkUQhiM0,2469
|
59
49
|
langroid/agent/tools/file_tools.py,sha256=6XHfbQkexdHcB80Hupc1ITLeej8z2TSLXJXnfiwpqG8,7325
|
60
|
-
langroid/agent/tools/file_tools.py-e,sha256=ItAp_tnO_iOTuDOqmfSx9ziH2zqZolzUzu78gdXX_yQ,7280
|
61
50
|
langroid/agent/tools/google_search_tool.py,sha256=y7b-3FtgXf0lfF4AYxrZ3K5pH2dhidvibUOAGBE--WI,1456
|
62
51
|
langroid/agent/tools/metaphor_search_tool.py,sha256=ccyEhkShH5MxW6-sx1n0BLpD_GForQddS_nNvBZ67Ik,2561
|
63
52
|
langroid/agent/tools/orchestration.py,sha256=KgKycDFQck98oU4c143Zwh1l0KkpHJ60iHv1jLAOn9A,11457
|
64
|
-
langroid/agent/tools/orchestration.py-e,sha256=YpEFQlAqMedz0m3qJRim0-NYGd_KvdC2XvYGJ17dKGQ,11211
|
65
53
|
langroid/agent/tools/recipient_tool.py,sha256=-fLoXlQ00PjIejMEKPAawd6wAcIcd2zw4M0P5Sj4exs,9854
|
66
54
|
langroid/agent/tools/retrieval_tool.py,sha256=zcAV20PP_6VzSd-UE-IJcabaBseFL_QNz59Bnig8-lE,946
|
67
55
|
langroid/agent/tools/rewind_tool.py,sha256=XAXL3BpNhCmBGYq_qi_sZfHJuIw7NY2jp4wnojJ7WRs,5606
|
68
56
|
langroid/agent/tools/segment_extract_tool.py,sha256=__srZ_VGYLVOdPrITUM8S0HpmX4q7r5FHWMDdHdEv8w,1440
|
69
57
|
langroid/agent/tools/task_tool.py,sha256=nn9g8fCaKtfTi6Gx3aa2joTg486VdTGT1s5geXuaViw,10119
|
70
|
-
langroid/agent/tools/task_tool.py-e,sha256=BDyzPS3vK8JcQwhL7VNV6ed1JLmmIyMUFFsZqJ3xtTE,9674
|
71
58
|
langroid/agent/tools/tavily_search_tool.py,sha256=soI-j0HdgVQLf09wRQScaEK4b5RpAX9C4cwOivRFWWI,1903
|
72
59
|
langroid/agent/tools/mcp/__init__.py,sha256=DJNM0VeFnFS3pJKCyFGggT8JVjVu0rBzrGzasT1HaSM,387
|
73
60
|
langroid/agent/tools/mcp/decorators.py,sha256=h7dterhsmvWJ8q4mp_OopmuG2DF71ty8cZwOyzdDZuk,1127
|
74
61
|
langroid/agent/tools/mcp/fastmcp_client.py,sha256=qqw05j8U89505HO9weXeOIK5aWgIn8sv67-l6_b4ZEU,22754
|
75
|
-
langroid/agent/tools/mcp/fastmcp_client.py-e,sha256=KTvAtJjRyarzTLIlADyQPBHlpWHTc8Ivm-5zF7IZAa8,22076
|
76
62
|
langroid/cachedb/__init__.py,sha256=G2KyNnk3Qkhv7OKyxTOnpsxfDycx3NY0O_wXkJlalNY,96
|
77
63
|
langroid/cachedb/base.py,sha256=b104RrL1Og7K2mWFy3sWc4Er3z9zWMtY9dxQVhwnm2E,1351
|
78
64
|
langroid/cachedb/redis_cachedb.py,sha256=7kgnbf4b5CKsCrlL97mHWKvdvlLt8zgn7lc528jEpiE,5141
|
79
65
|
langroid/embedding_models/__init__.py,sha256=KyYxR3jDFUCfYjSuCL86qjAmrq6mXXjOT4lFNOKVj6Y,955
|
80
66
|
langroid/embedding_models/base.py,sha256=F65Vlj3RugkcntWOoKm-0b7h4T_Les6m4e7Qto_-Otg,2564
|
81
67
|
langroid/embedding_models/models.py,sha256=Cwlq3ZsXXRblh7v0iABJ1QDZorJ2l3Hyks-T9g4JtnE,20649
|
82
|
-
langroid/embedding_models/models.py-e,sha256=oqVNSujA2569PsVk5Bz6Pg5pkYlTe-Th29txTV__nrg,20647
|
83
68
|
langroid/embedding_models/remote_embeds.py,sha256=6_kjXByVbqhY9cGwl9R83ZcYC2km-nGieNNAo1McHaY,5151
|
84
69
|
langroid/embedding_models/protoc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
85
70
|
langroid/embedding_models/protoc/embeddings.proto,sha256=_O-SgFpTaylQeOTgSpxhEJ7CUw7PeCQQJLaPqpPYKJg,321
|
@@ -88,76 +73,57 @@ langroid/embedding_models/protoc/embeddings_pb2.pyi,sha256=UkNy7BrNsmQm0vLb3NtGX
|
|
88
73
|
langroid/embedding_models/protoc/embeddings_pb2_grpc.py,sha256=9dYQqkW3JPyBpSEjeGXTNpSqAkC-6FPtBHyteVob2Y8,2452
|
89
74
|
langroid/language_models/__init__.py,sha256=3aD2qC1lz8v12HX4B-dilv27gNxYdGdeu1QvDlkqqHs,1095
|
90
75
|
langroid/language_models/azure_openai.py,sha256=V7a4Y87fQGQ43_aNwuVGj5KQUe8MV2cjZQB5RLQOHHA,5094
|
91
|
-
langroid/language_models/azure_openai.py-e,sha256=HXQlN9xtKpv9_6OJRYjZPnVGY8YmXjPytvQr1g6T0M0,5069
|
92
76
|
langroid/language_models/base.py,sha256=uRi-XtQhsEBN702_lGepxlNQ0e8gaPgaXjULYn2r8ww,28595
|
93
|
-
langroid/language_models/base.py-e,sha256=_MQ_MkwQSyPH7j5IQCfJMw9eAEvnnGgp_9_OBZRHJRE,28627
|
94
77
|
langroid/language_models/client_cache.py,sha256=c8tAUTKxbd-CVGRy9WPYhI1pLtarFWWwX6-qm4ZXaqk,9399
|
95
78
|
langroid/language_models/config.py,sha256=rhEZ9Wwq42q1uW_-oRFbilJhIw1vYlTvYqIk_7pHiSY,397
|
96
|
-
langroid/language_models/config.py-e,sha256=VGgsU-idOpcRqZE6gsGYQYk060hNhlI_UXrYl_A1ggI,402
|
97
79
|
langroid/language_models/mock_lm.py,sha256=tA9JpURznsMZ59iRhFYMmaYQzAc0D0BT-PiJIV58sAk,4079
|
98
|
-
langroid/language_models/model_info.py,sha256=
|
99
|
-
langroid/language_models/model_info.py-e,sha256=kgqYB4AxEcJrTPke8LcbND8GKYJpdTOeYhtEbL9ClAw,17109
|
80
|
+
langroid/language_models/model_info.py,sha256=5bq2CzBzNVBSixxxcbNQ1-VIdjBtmbdm5XP4_z5xM88,19236
|
100
81
|
langroid/language_models/openai_gpt.py,sha256=K0SSRQYDBb_2ku9TPxGBStsimxBKw-EmmySuagqfgSs,94072
|
101
|
-
langroid/language_models/openai_gpt.py-e,sha256=A5mvI4qMqo8tlZJj8DM3FaVc9xhIdYwTNKRE0d_aDvQ,92688
|
102
82
|
langroid/language_models/provider_params.py,sha256=upG4cBrX8fcvAo1g7fcsv-rBbsfypIqcDRRV9m1hohU,4846
|
103
|
-
langroid/language_models/provider_params.py-e,sha256=cPlAKVHlLHQOMzY6VIcQO8QSV5hFxiqXqNtTxxZMinA,4842
|
104
83
|
langroid/language_models/utils.py,sha256=n55Oe2_V_4VNGhytvPWLYC-0tFS07RTjN83KWl-p_MI,6032
|
105
84
|
langroid/language_models/prompt_formatter/__init__.py,sha256=2-5cdE24XoFDhifOLl8yiscohil1ogbP1ECkYdBlBsk,372
|
106
85
|
langroid/language_models/prompt_formatter/base.py,sha256=eDS1sgRNZVnoajwV_ZIha6cba5Dt8xjgzdRbPITwx3Q,1221
|
107
86
|
langroid/language_models/prompt_formatter/hf_formatter.py,sha256=PVJppmjRvD-2DF-XNC6mE05vTZ9wbu37SmXwZBQhad0,5055
|
108
87
|
langroid/language_models/prompt_formatter/llama2_formatter.py,sha256=YdcO88qyBeuMENVIVvVqSYuEpvYSTndUe_jd6hVTko4,2899
|
88
|
+
langroid/mcp/__init__.py,sha256=HGtfHjcLVruCFJavOBAmVpk5u2h5UwzgqxOiOYIjXj0,61
|
89
|
+
langroid/mcp/server/__init__.py,sha256=HIju6Y3npEAC6lx8svT3q_vrMN1vT8fGUTzChBMIM4U,46
|
109
90
|
langroid/parsing/__init__.py,sha256=2oUWJJAxIavq9Wtw5RGlkXLq3GF3zgXeVLLW4j7yeb8,1138
|
110
91
|
langroid/parsing/agent_chats.py,sha256=sbZRV9ujdM5QXvvuHVjIi2ysYSYlap-uqfMMUKulrW0,1068
|
111
92
|
langroid/parsing/code_parser.py,sha256=ZxKvbO3_VGOa0HA9Ybh26HGF6i2pD_zWsrLvy5oYxSs,3793
|
112
93
|
langroid/parsing/document_parser.py,sha256=cUcp4JKS_LpsjX7OqnGBhHorDHx7FG5pvKGjRBkQoMw,57685
|
113
94
|
langroid/parsing/file_attachment.py,sha256=f-MBRCI58XsCqJDH2HwTWwTQxLbYsDrOLgjrM1kw3XE,7350
|
114
|
-
langroid/parsing/file_attachment.py-e,sha256=f-MBRCI58XsCqJDH2HwTWwTQxLbYsDrOLgjrM1kw3XE,7350
|
115
95
|
langroid/parsing/md_parser.py,sha256=8LX9RDRWV1dZSYa-uBD8-whC_L6UYco-AQUxIuviqEk,21656
|
116
|
-
langroid/parsing/md_parser.py-e,sha256=Jl7uQ9t6dR8Ka-j-FRW6TpaoA_FK_HDlEp8bbEQ1eU8,21328
|
117
96
|
langroid/parsing/para_sentence_split.py,sha256=AJBzZojP3zpB-_IMiiHismhqcvkrVBQ3ZINoQyx_bE4,2000
|
118
97
|
langroid/parsing/parse_json.py,sha256=aADo38bAHQhC8on4aWZZzVzSDy-dK35vRLZsFI2ewh8,4756
|
119
98
|
langroid/parsing/parser.py,sha256=IcwmVLlAae5LiKZ9OFhrnVOoHxcnsV7feFSHQiFfoi4,16112
|
120
|
-
langroid/parsing/parser.py-e,sha256=MgCioYSKcX4HkPfUSlzG6Q_8L121-DmwsLeV9x13xoE,15737
|
121
99
|
langroid/parsing/pdf_utils.py,sha256=QogxU_B1N3WSLyZ9PEcJDaJoZShKs7CPQRVyF1V2DiE,3143
|
122
100
|
langroid/parsing/repo_loader.py,sha256=oB0TNifWCaqvlj7C0U76C4NZT7b94BbGkVX_-mrcH_4,30220
|
123
|
-
langroid/parsing/repo_loader.py-e,sha256=qFpHm054WtpRh_hj46h7XTpy5GqkcDJifXln8EBj9ds,30220
|
124
101
|
langroid/parsing/routing.py,sha256=-FcnlqldzL4ZoxuDwXjQPNHgBe9F9-F4R6q7b_z9CvI,1232
|
125
102
|
langroid/parsing/search.py,sha256=2vs09KRyA12OQAoxrThyEbuekHtxtBicQohJf7d3nOw,9820
|
126
103
|
langroid/parsing/spider.py,sha256=hAVM6wxh1pQ0EN4tI5wMBtAjIk0T-xnpi-ZUzWybhos,3258
|
127
104
|
langroid/parsing/table_loader.py,sha256=qNM4obT_0Y4tjrxNBCNUYjKQ9oETCZ7FbolKBTcz-GM,3410
|
128
105
|
langroid/parsing/url_loader.py,sha256=q7Sxjq94xhWvTioCru7ndf3rM_tGkiTyGcSkxdfZjxQ,24028
|
129
|
-
langroid/parsing/url_loader.py-e,sha256=JW416W6-BoxNviWvOF24WAILyA0V6b50sOqCN0in3cU,25190
|
130
106
|
langroid/parsing/urls.py,sha256=6PIj0W8QpQAx7L1m4hYd2cH2yq9dupCJzCp1HBfDLO0,8169
|
131
|
-
langroid/parsing/urls.py-e,sha256=C-y206RgCqxoJ099dcklWvyV4Nr1U5K22-T02pN7f5c,8069
|
132
107
|
langroid/parsing/utils.py,sha256=WwqzOhbQRlorbVvddDIZKv9b1KqZCBDm955lgIHDXRw,12828
|
133
108
|
langroid/parsing/web_search.py,sha256=atk8wIpOfiGTvW8yL_26TvjvyY2zD24xIHIi0QjEklI,8599
|
134
109
|
langroid/prompts/__init__.py,sha256=RW11vK6jiLPuaUh4GpeFvstti73gkm8_rDMtrbo2YsU,142
|
135
110
|
langroid/prompts/dialog.py,sha256=SpfiSyofSgy2pwD1YboHR_yHO3LEEMbv6j2sm874jKo,331
|
136
111
|
langroid/prompts/prompts_config.py,sha256=U4TxNld-ulVzWMK9joSVH852qfZtvF310eIG_mSGxmg,140
|
137
112
|
langroid/prompts/templates.py,sha256=VV84HVf_amOx6xdWQyIsN9i5dNfrbl8rsfFp6hyfOss,6371
|
138
|
-
langroid/pydantic_v1/__init__.py,sha256=
|
139
|
-
langroid/pydantic_v1/__init__.py-e,sha256=rfgQ78ZCiaN5A9P2tvAKGuzspGJdDeGP8czONYsdz4U,1008
|
113
|
+
langroid/pydantic_v1/__init__.py,sha256=f619eSnO8we5vkY0YEj6VKtDCtXnY6jaXD1hRWXQ_tY,3205
|
140
114
|
langroid/pydantic_v1/main.py,sha256=OPsAisRqkzWd4hvlvJqPH-goMWIyModK2AQJOTxThQg,362
|
141
|
-
langroid/pydantic_v1/main.py-e,sha256=Qh6qp5aqAIZxPprdHI3ys2kk3jHPQKBMIcr-zKmTomo,326
|
142
115
|
langroid/utils/__init__.py,sha256=Sruos2tB4G7Tn0vlblvYlX9PEGR0plI2uE0PJ4d_EC4,353
|
143
116
|
langroid/utils/configuration.py,sha256=7j3LR4vPiOPuu4BD8-uy0T8Um2qpx--RD6PUlF-K60Q,4886
|
144
|
-
langroid/utils/configuration.py-e,sha256=Fv8lCN7ziVtDj7of7-A97lkURNmJnFMPyopEtnIaGTQ,4909
|
145
117
|
langroid/utils/constants.py,sha256=yOqhrb9L5dmRL3Z1V33pRn-2sUfubCdeBi7n0Y_lxMs,1063
|
146
|
-
langroid/utils/constants.py-e,sha256=yOqhrb9L5dmRL3Z1V33pRn-2sUfubCdeBi7n0Y_lxMs,1063
|
147
118
|
langroid/utils/git_utils.py,sha256=WnflJ3R3owhlD0LNdSJakcKhExcEehE1UW5jYVQl8JY,7955
|
148
119
|
langroid/utils/globals.py,sha256=-t0deiWdBbfgm9FA2uPWU5T6ydZ4f7uajahGdOSEpd4,2064
|
149
|
-
langroid/utils/globals.py-e,sha256=VkTHhlqSz86oOPq65sjul0XU8I52UNaFC5vwybMQ74w,1343
|
150
120
|
langroid/utils/html_logger.py,sha256=I1x2E51D-Q-4WZBAy5LtItV_6ESFzPEHMRb9QVx3gH8,27018
|
151
|
-
langroid/utils/html_logger.py-e,sha256=sgJSpJ805aGSoJl8JrYtucj4AL7f161-nhT-tLs--0w,27017
|
152
121
|
langroid/utils/logging.py,sha256=RgfmWRWe178rQSd0gFrrSizHzD0mG-SA5FR92kNZ9Gk,7280
|
153
122
|
langroid/utils/object_registry.py,sha256=414nUXie88D6YSIW5o53bEEgsLJHqFCbbFTMlCNRiqs,2088
|
154
|
-
langroid/utils/object_registry.py-e,sha256=414nUXie88D6YSIW5o53bEEgsLJHqFCbbFTMlCNRiqs,2088
|
155
123
|
langroid/utils/pandas_utils.py,sha256=IaEtdy4IkIh6fjc7XXpczwjhgWodoGmJX50LxoYSEeI,7280
|
156
124
|
langroid/utils/pydantic_utils.py,sha256=alz7txJqSdiZC643b6fYrysHpggSfpZW_DFgggeKNqI,22070
|
157
|
-
langroid/utils/pydantic_utils.py-e,sha256=FY7KN74YXMRcYdiGUroJDWAKuuzZ4ZF2Dcufzq5XLos,20865
|
158
125
|
langroid/utils/system.py,sha256=q3QJtTSapIwNe8MMhGEM03wgxPLmZiD47_sF1pKx53I,8472
|
159
126
|
langroid/utils/types.py,sha256=i9iQOx5HHtHIft578iR5L1yOJQcr9XvASZqZluAdXJA,2991
|
160
|
-
langroid/utils/types.py-e,sha256=i9iQOx5HHtHIft578iR5L1yOJQcr9XvASZqZluAdXJA,2991
|
161
127
|
langroid/utils/algorithms/__init__.py,sha256=WylYoZymA0fnzpB4vrsH_0n7WsoLhmuZq8qxsOCjUpM,41
|
162
128
|
langroid/utils/algorithms/graph.py,sha256=JbdpPnUOhw4-D6O7ou101JLA3xPCD0Lr3qaPoFCaRfo,2866
|
163
129
|
langroid/utils/output/__init__.py,sha256=7P0f--4IZneNsTxXY5fd6d6iW-CeVe-KSsl-87sbBPc,340
|
@@ -168,14 +134,12 @@ langroid/vector_store/__init__.py,sha256=8ktJUVsVUoc7FMmkUFpFBZu7VMWUqQY9zpm4kEJ
|
|
168
134
|
langroid/vector_store/base.py,sha256=27DmKvYNQInD5xDTRFIUgHl4vOYt5TQzAGbk_0EqGtI,15064
|
169
135
|
langroid/vector_store/chromadb.py,sha256=p9mEqJwO2BrL2jSSXfa23kCPlPOwWpF3xJYd5zoWw_c,8661
|
170
136
|
langroid/vector_store/lancedb.py,sha256=8rXonTIGgwQU2R6Zy2zcWXR-iI7cdGf-ZwasjGFAziw,14761
|
171
|
-
langroid/vector_store/lancedb.py-e,sha256=oHlM3JAEiLh4g5rs5wLkosKvS4cfUdLoW-0m35GmOlU,14688
|
172
137
|
langroid/vector_store/meilisearch.py,sha256=97rvoVR720mbNOVCbXcnw9GYjiyLI9RrrT10P7giabw,11674
|
173
138
|
langroid/vector_store/pineconedb.py,sha256=7V0Bkt4ZrOR3V90tdXvdFmyNGuww7SFdyPq7-_GG5W0,14988
|
174
|
-
langroid/vector_store/pineconedb.py-e,sha256=LSC507hYKu6D3HZa3NnSQT-fmdGnUfRiz05js_5Trwo,14988
|
175
139
|
langroid/vector_store/postgres.py,sha256=TY_VshimwFZglYgKYm7Qn1F-dCSL8GsXRTgmh7VTe9c,16110
|
176
140
|
langroid/vector_store/qdrantdb.py,sha256=mqxMOrcLAQpl0opuL8vXhdIt6ppv2zYyAvddHZoEW0Y,19184
|
177
141
|
langroid/vector_store/weaviatedb.py,sha256=BS95bxVKNYfQc9VPb85a1HlcgnXfAkgMzjydnjCgRHc,11853
|
178
|
-
langroid-0.59.
|
179
|
-
langroid-0.59.
|
180
|
-
langroid-0.59.
|
181
|
-
langroid-0.59.
|
142
|
+
langroid-0.59.2.dist-info/METADATA,sha256=-v3j3a3T4jAnC6xg0S7SRUgUdg8T2L9y1hSmO5lSy4Q,66517
|
143
|
+
langroid-0.59.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
144
|
+
langroid-0.59.2.dist-info/licenses/LICENSE,sha256=EgVbvA6VSYgUlvC3RvPKehSg7MFaxWDsFuzLOsPPfJg,1065
|
145
|
+
langroid-0.59.2.dist-info/RECORD,,
|