langroid 0.59.8__tar.gz → 0.59.9__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.59.8 → langroid-0.59.9}/PKG-INFO +1 -1
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/relevance_extractor_agent.py +19 -12
- {langroid-0.59.8 → langroid-0.59.9}/pyproject.toml +1 -1
- {langroid-0.59.8 → langroid-0.59.9}/.gitignore +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/LICENSE +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/README.md +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/base.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/batch.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/callbacks/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/callbacks/chainlit.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/chat_agent.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/chat_document.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/done_sequence_parser.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/openai_assistant.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/arangodb/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/arangodb/arangodb_agent.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/arangodb/system_messages.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/arangodb/tools.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/arangodb/utils.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/doc_chat_agent.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/doc_chat_task.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/lance_doc_chat_agent.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/lance_rag/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/lance_rag/critic_agent.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/lance_rag/lance_rag_task.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/lance_rag/query_planner_agent.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/lance_tools.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/neo4j/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/neo4j/csv_kg_chat.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/neo4j/neo4j_chat_agent.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/neo4j/system_messages.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/neo4j/tools.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/retriever_agent.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/sql/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/sql/sql_chat_agent.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/sql/utils/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/sql/utils/description_extractors.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/sql/utils/populate_metadata.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/sql/utils/system_message.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/sql/utils/tools.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/table_chat_agent.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/task.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tool_message.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/duckduckgo_search_tool.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/exa_search_tool.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/file_tools.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/google_search_tool.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/mcp/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/mcp/decorators.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/mcp/fastmcp_client.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/metaphor_search_tool.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/orchestration.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/recipient_tool.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/retrieval_tool.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/rewind_tool.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/segment_extract_tool.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/task_tool.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/tools/tavily_search_tool.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/agent/xml_tool_message.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/cachedb/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/cachedb/base.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/cachedb/redis_cachedb.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/embedding_models/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/embedding_models/base.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/embedding_models/models.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/embedding_models/protoc/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/embedding_models/protoc/embeddings.proto +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/embedding_models/protoc/embeddings_pb2.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/embedding_models/protoc/embeddings_pb2.pyi +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/embedding_models/protoc/embeddings_pb2_grpc.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/embedding_models/remote_embeds.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/exceptions.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/azure_openai.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/base.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/client_cache.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/config.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/mock_lm.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/model_info.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/openai_gpt.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/prompt_formatter/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/prompt_formatter/base.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/prompt_formatter/hf_formatter.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/prompt_formatter/llama2_formatter.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/provider_params.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/utils.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/mcp/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/mcp/server/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/mytypes.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/agent_chats.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/code_parser.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/document_parser.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/file_attachment.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/md_parser.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/para_sentence_split.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/parse_json.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/parser.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/pdf_utils.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/repo_loader.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/routing.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/search.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/spider.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/table_loader.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/url_loader.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/urls.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/utils.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/parsing/web_search.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/prompts/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/prompts/dialog.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/prompts/prompts_config.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/prompts/templates.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/py.typed +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/pydantic_v1/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/pydantic_v1/main.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/algorithms/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/algorithms/graph.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/configuration.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/constants.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/git_utils.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/globals.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/html_logger.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/logging.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/object_registry.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/output/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/output/citations.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/output/printing.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/output/status.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/pandas_utils.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/pydantic_utils.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/system.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/utils/types.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/vector_store/__init__.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/vector_store/base.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/vector_store/chromadb.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/vector_store/lancedb.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/vector_store/meilisearch.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/vector_store/pineconedb.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/vector_store/postgres.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/vector_store/qdrantdb.py +0 -0
- {langroid-0.59.8 → langroid-0.59.9}/langroid/vector_store/weaviatedb.py +0 -0
@@ -14,7 +14,6 @@ from langroid.agent.chat_document import ChatDocument
|
|
14
14
|
from langroid.agent.tools.segment_extract_tool import SegmentExtractTool
|
15
15
|
from langroid.language_models.base import LLMConfig
|
16
16
|
from langroid.language_models.openai_gpt import OpenAIGPTConfig
|
17
|
-
from langroid.mytypes import Entity
|
18
17
|
from langroid.parsing.utils import extract_numbered_segments, number_segments
|
19
18
|
from langroid.utils.constants import DONE, NO_ANSWER
|
20
19
|
|
@@ -26,12 +25,19 @@ class RelevanceExtractorAgentConfig(ChatAgentConfig):
|
|
26
25
|
llm: LLMConfig | None = OpenAIGPTConfig()
|
27
26
|
segment_length: int = 1 # number of sentences per segment
|
28
27
|
query: str = "" # query for relevance extraction
|
28
|
+
handle_llm_no_tool: str = """
|
29
|
+
You FORGOT to use the `extract_segments` tool!
|
30
|
+
Remember that your response MUST be a JSON-formatted string
|
31
|
+
starting with `{"request": "extract_segments", ...}`
|
32
|
+
"""
|
29
33
|
system_message: str = """
|
30
34
|
The user will give you a PASSAGE containing segments numbered as
|
31
35
|
<#1#>, <#2#>, <#3#>, etc.,
|
32
36
|
followed by a QUERY. Extract ONLY the segment-numbers from
|
33
37
|
the PASSAGE that are RELEVANT to the QUERY.
|
34
38
|
Present the extracted segment-numbers using the `extract_segments` tool/function.
|
39
|
+
Note that your response MUST be a JSON-formatted string
|
40
|
+
starting with `{"request": "extract_segments", ...}`
|
35
41
|
"""
|
36
42
|
|
37
43
|
|
@@ -63,13 +69,22 @@ class RelevanceExtractorAgent(ChatAgent):
|
|
63
69
|
self.numbered_passage = number_segments(message_str, self.config.segment_length)
|
64
70
|
# compose prompt
|
65
71
|
prompt = f"""
|
72
|
+
<Instructions>
|
73
|
+
Given the PASSAGE below with NUMBERED segments, and the QUERY,
|
74
|
+
extract ONLY the segment-numbers that are RELEVANT to the QUERY,
|
75
|
+
and present them using the `extract_segments` tool/function,
|
76
|
+
i.e. your response MUST be a JSON-formatted string starting with
|
77
|
+
`{{"request": "extract_segments", ...}}`
|
78
|
+
</Instructions>
|
79
|
+
|
66
80
|
PASSAGE:
|
67
81
|
{self.numbered_passage}
|
68
82
|
|
69
83
|
QUERY: {self.config.query}
|
70
84
|
"""
|
71
85
|
# send to LLM
|
72
|
-
|
86
|
+
response = super().llm_response(prompt)
|
87
|
+
return response
|
73
88
|
|
74
89
|
@no_type_check
|
75
90
|
async def llm_response_async(
|
@@ -99,7 +114,8 @@ class RelevanceExtractorAgent(ChatAgent):
|
|
99
114
|
QUERY: {self.config.query}
|
100
115
|
"""
|
101
116
|
# send to LLM
|
102
|
-
|
117
|
+
response = await super().llm_response_async(prompt)
|
118
|
+
return response
|
103
119
|
|
104
120
|
def extract_segments(self, msg: SegmentExtractTool) -> str:
|
105
121
|
"""Method to handle a segmentExtractTool message from LLM"""
|
@@ -116,12 +132,3 @@ class RelevanceExtractorAgent(ChatAgent):
|
|
116
132
|
return DONE + " " + NO_ANSWER
|
117
133
|
# this response ends the task by saying DONE
|
118
134
|
return DONE + " " + extracts
|
119
|
-
|
120
|
-
def handle_message_fallback(
|
121
|
-
self, msg: str | ChatDocument
|
122
|
-
) -> str | ChatDocument | None:
|
123
|
-
"""Handle case where LLM forgets to use SegmentExtractTool"""
|
124
|
-
if isinstance(msg, ChatDocument) and msg.metadata.sender == Entity.LLM:
|
125
|
-
return DONE + " " + NO_ANSWER
|
126
|
-
else:
|
127
|
-
return None
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langroid-0.59.8 → langroid-0.59.9}/langroid/agent/special/sql/utils/description_extractors.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/prompt_formatter/hf_formatter.py
RENAMED
File without changes
|
{langroid-0.59.8 → langroid-0.59.9}/langroid/language_models/prompt_formatter/llama2_formatter.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|