langroid 0.37.3__tar.gz → 0.37.5__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 (130) hide show
  1. {langroid-0.37.3 → langroid-0.37.5}/PKG-INFO +1 -1
  2. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/chat_agent.py +1 -1
  3. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/sql/sql_chat_agent.py +2 -10
  4. {langroid-0.37.3 → langroid-0.37.5}/langroid/language_models/openai_gpt.py +6 -1
  5. {langroid-0.37.3 → langroid-0.37.5}/langroid/vector_store/base.py +6 -1
  6. {langroid-0.37.3 → langroid-0.37.5}/langroid/vector_store/chromadb.py +0 -1
  7. {langroid-0.37.3 → langroid-0.37.5}/langroid/vector_store/lancedb.py +1 -3
  8. {langroid-0.37.3 → langroid-0.37.5}/langroid/vector_store/momento.py +1 -3
  9. {langroid-0.37.3 → langroid-0.37.5}/langroid/vector_store/qdrantdb.py +1 -3
  10. {langroid-0.37.3 → langroid-0.37.5}/langroid/vector_store/weaviatedb.py +1 -3
  11. {langroid-0.37.3 → langroid-0.37.5}/pyproject.toml +1 -1
  12. {langroid-0.37.3 → langroid-0.37.5}/.gitignore +0 -0
  13. {langroid-0.37.3 → langroid-0.37.5}/LICENSE +0 -0
  14. {langroid-0.37.3 → langroid-0.37.5}/README.md +0 -0
  15. {langroid-0.37.3 → langroid-0.37.5}/langroid/__init__.py +0 -0
  16. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/__init__.py +0 -0
  17. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/base.py +0 -0
  18. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/batch.py +0 -0
  19. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/callbacks/__init__.py +0 -0
  20. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/callbacks/chainlit.py +0 -0
  21. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/chat_document.py +0 -0
  22. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/openai_assistant.py +0 -0
  23. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/__init__.py +0 -0
  24. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/arangodb/__init__.py +0 -0
  25. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/arangodb/arangodb_agent.py +0 -0
  26. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/arangodb/system_messages.py +0 -0
  27. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/arangodb/tools.py +0 -0
  28. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/arangodb/utils.py +0 -0
  29. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/doc_chat_agent.py +0 -0
  30. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/lance_doc_chat_agent.py +0 -0
  31. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/lance_rag/__init__.py +0 -0
  32. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/lance_rag/critic_agent.py +0 -0
  33. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/lance_rag/lance_rag_task.py +0 -0
  34. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/lance_rag/query_planner_agent.py +0 -0
  35. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/lance_tools.py +0 -0
  36. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/neo4j/__init__.py +0 -0
  37. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/neo4j/csv_kg_chat.py +0 -0
  38. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/neo4j/neo4j_chat_agent.py +0 -0
  39. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/neo4j/system_messages.py +0 -0
  40. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/neo4j/tools.py +0 -0
  41. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/relevance_extractor_agent.py +0 -0
  42. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/retriever_agent.py +0 -0
  43. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/sql/__init__.py +0 -0
  44. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/sql/utils/__init__.py +0 -0
  45. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/sql/utils/description_extractors.py +0 -0
  46. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/sql/utils/populate_metadata.py +0 -0
  47. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/sql/utils/system_message.py +0 -0
  48. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/sql/utils/tools.py +0 -0
  49. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/special/table_chat_agent.py +0 -0
  50. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/task.py +0 -0
  51. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/tool_message.py +0 -0
  52. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/tools/__init__.py +0 -0
  53. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/tools/duckduckgo_search_tool.py +0 -0
  54. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/tools/file_tools.py +0 -0
  55. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/tools/google_search_tool.py +0 -0
  56. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/tools/metaphor_search_tool.py +0 -0
  57. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/tools/orchestration.py +0 -0
  58. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/tools/recipient_tool.py +0 -0
  59. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/tools/retrieval_tool.py +0 -0
  60. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/tools/rewind_tool.py +0 -0
  61. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/tools/segment_extract_tool.py +0 -0
  62. {langroid-0.37.3 → langroid-0.37.5}/langroid/agent/xml_tool_message.py +0 -0
  63. {langroid-0.37.3 → langroid-0.37.5}/langroid/cachedb/__init__.py +0 -0
  64. {langroid-0.37.3 → langroid-0.37.5}/langroid/cachedb/base.py +0 -0
  65. {langroid-0.37.3 → langroid-0.37.5}/langroid/cachedb/momento_cachedb.py +0 -0
  66. {langroid-0.37.3 → langroid-0.37.5}/langroid/cachedb/redis_cachedb.py +0 -0
  67. {langroid-0.37.3 → langroid-0.37.5}/langroid/embedding_models/__init__.py +0 -0
  68. {langroid-0.37.3 → langroid-0.37.5}/langroid/embedding_models/base.py +0 -0
  69. {langroid-0.37.3 → langroid-0.37.5}/langroid/embedding_models/models.py +0 -0
  70. {langroid-0.37.3 → langroid-0.37.5}/langroid/embedding_models/protoc/__init__.py +0 -0
  71. {langroid-0.37.3 → langroid-0.37.5}/langroid/embedding_models/protoc/embeddings.proto +0 -0
  72. {langroid-0.37.3 → langroid-0.37.5}/langroid/embedding_models/protoc/embeddings_pb2.py +0 -0
  73. {langroid-0.37.3 → langroid-0.37.5}/langroid/embedding_models/protoc/embeddings_pb2.pyi +0 -0
  74. {langroid-0.37.3 → langroid-0.37.5}/langroid/embedding_models/protoc/embeddings_pb2_grpc.py +0 -0
  75. {langroid-0.37.3 → langroid-0.37.5}/langroid/embedding_models/remote_embeds.py +0 -0
  76. {langroid-0.37.3 → langroid-0.37.5}/langroid/exceptions.py +0 -0
  77. {langroid-0.37.3 → langroid-0.37.5}/langroid/language_models/__init__.py +0 -0
  78. {langroid-0.37.3 → langroid-0.37.5}/langroid/language_models/azure_openai.py +0 -0
  79. {langroid-0.37.3 → langroid-0.37.5}/langroid/language_models/base.py +0 -0
  80. {langroid-0.37.3 → langroid-0.37.5}/langroid/language_models/config.py +0 -0
  81. {langroid-0.37.3 → langroid-0.37.5}/langroid/language_models/mock_lm.py +0 -0
  82. {langroid-0.37.3 → langroid-0.37.5}/langroid/language_models/prompt_formatter/__init__.py +0 -0
  83. {langroid-0.37.3 → langroid-0.37.5}/langroid/language_models/prompt_formatter/base.py +0 -0
  84. {langroid-0.37.3 → langroid-0.37.5}/langroid/language_models/prompt_formatter/hf_formatter.py +0 -0
  85. {langroid-0.37.3 → langroid-0.37.5}/langroid/language_models/prompt_formatter/llama2_formatter.py +0 -0
  86. {langroid-0.37.3 → langroid-0.37.5}/langroid/language_models/utils.py +0 -0
  87. {langroid-0.37.3 → langroid-0.37.5}/langroid/mytypes.py +0 -0
  88. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/__init__.py +0 -0
  89. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/agent_chats.py +0 -0
  90. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/code_parser.py +0 -0
  91. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/document_parser.py +0 -0
  92. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/para_sentence_split.py +0 -0
  93. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/parse_json.py +0 -0
  94. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/parser.py +0 -0
  95. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/pdf_utils.py +0 -0
  96. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/repo_loader.py +0 -0
  97. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/routing.py +0 -0
  98. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/search.py +0 -0
  99. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/spider.py +0 -0
  100. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/table_loader.py +0 -0
  101. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/url_loader.py +0 -0
  102. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/urls.py +0 -0
  103. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/utils.py +0 -0
  104. {langroid-0.37.3 → langroid-0.37.5}/langroid/parsing/web_search.py +0 -0
  105. {langroid-0.37.3 → langroid-0.37.5}/langroid/prompts/__init__.py +0 -0
  106. {langroid-0.37.3 → langroid-0.37.5}/langroid/prompts/dialog.py +0 -0
  107. {langroid-0.37.3 → langroid-0.37.5}/langroid/prompts/prompts_config.py +0 -0
  108. {langroid-0.37.3 → langroid-0.37.5}/langroid/prompts/templates.py +0 -0
  109. {langroid-0.37.3 → langroid-0.37.5}/langroid/py.typed +0 -0
  110. {langroid-0.37.3 → langroid-0.37.5}/langroid/pydantic_v1/__init__.py +0 -0
  111. {langroid-0.37.3 → langroid-0.37.5}/langroid/pydantic_v1/main.py +0 -0
  112. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/__init__.py +0 -0
  113. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/algorithms/__init__.py +0 -0
  114. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/algorithms/graph.py +0 -0
  115. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/configuration.py +0 -0
  116. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/constants.py +0 -0
  117. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/git_utils.py +0 -0
  118. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/globals.py +0 -0
  119. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/logging.py +0 -0
  120. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/object_registry.py +0 -0
  121. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/output/__init__.py +0 -0
  122. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/output/citations.py +0 -0
  123. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/output/printing.py +0 -0
  124. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/output/status.py +0 -0
  125. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/pandas_utils.py +0 -0
  126. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/pydantic_utils.py +0 -0
  127. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/system.py +0 -0
  128. {langroid-0.37.3 → langroid-0.37.5}/langroid/utils/types.py +0 -0
  129. {langroid-0.37.3 → langroid-0.37.5}/langroid/vector_store/__init__.py +0 -0
  130. {langroid-0.37.3 → langroid-0.37.5}/langroid/vector_store/meilisearch.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langroid
3
- Version: 0.37.3
3
+ Version: 0.37.5
4
4
  Summary: Harness LLMs with Multi-Agent Programming
5
5
  Author-email: Prasad Chalasani <pchalasani@gmail.com>
6
6
  License: MIT
@@ -1023,7 +1023,7 @@ class ChatAgent(Agent):
1023
1023
  all_tools: bool = False,
1024
1024
  ) -> List[ToolMessage]:
1025
1025
  """
1026
- Extracts messages and tracks whether any errors occured. If strict mode
1026
+ Extracts messages and tracks whether any errors occurred. If strict mode
1027
1027
  was enabled, disables it for the tool, else triggers strict recovery.
1028
1028
  """
1029
1029
  self.tool_error = False
@@ -427,15 +427,7 @@ class SQLChatAgent(ChatAgent):
427
427
  return error_message_template
428
428
 
429
429
  def _available_tool_names(self) -> str:
430
- return ",".join(
431
- tool.name() # type: ignore
432
- for tool in [
433
- RunQueryTool,
434
- GetTableNamesTool,
435
- GetTableSchemaTool,
436
- GetColumnDescriptionsTool,
437
- ]
438
- )
430
+ return ",".join(self.llm_tools_usable)
439
431
 
440
432
  def _tool_result_llm_answer_prompt(self) -> str:
441
433
  """
@@ -510,7 +502,7 @@ class SQLChatAgent(ChatAgent):
510
502
  {self._tool_result_llm_answer_prompt()}
511
503
  OTHERWISE:
512
504
  continue using one of your available TOOLs:
513
- {self._available_tool_names()}
505
+ {",".join(self.llm_tools_usable)}
514
506
  """
515
507
  return final_message
516
508
 
@@ -1897,7 +1897,12 @@ class OpenAIGPT(LanguageModel):
1897
1897
  }
1898
1898
  }
1899
1899
  """
1900
- message = response["choices"][0]["message"]
1900
+ if response.get("choices") is None:
1901
+ message = {}
1902
+ else:
1903
+ message = response["choices"][0].get("message", {})
1904
+ if message is None:
1905
+ message = {}
1901
1906
  msg = message.get("content", "")
1902
1907
  reasoning = message.get("reasoning_content", "")
1903
1908
 
@@ -8,7 +8,7 @@ import pandas as pd
8
8
 
9
9
  from langroid.embedding_models.base import EmbeddingModel, EmbeddingModelsConfig
10
10
  from langroid.embedding_models.models import OpenAIEmbeddingsConfig
11
- from langroid.mytypes import DocMetaData, Document
11
+ from langroid.mytypes import DocMetaData, Document, EmbeddingFunction
12
12
  from langroid.pydantic_v1 import BaseSettings
13
13
  from langroid.utils.algorithms.graph import components, topological_sort
14
14
  from langroid.utils.configuration import settings
@@ -51,6 +51,7 @@ class VectorStore(ABC):
51
51
  self.embedding_model = EmbeddingModel.create(config.embedding)
52
52
  else:
53
53
  self.embedding_model = config.embedding_model
54
+ self.embedding_fn: EmbeddingFunction = self.embedding_model.embedding_fn()
54
55
 
55
56
  @staticmethod
56
57
  def create(config: VectorStoreConfig) -> Optional["VectorStore"]:
@@ -86,6 +87,10 @@ class VectorStore(ABC):
86
87
  )
87
88
  return None
88
89
 
90
+ @property
91
+ def embedding_dim(self) -> int:
92
+ return len(self.embedding_fn(["test"])[0])
93
+
89
94
  @abstractmethod
90
95
  def clear_empty_collections(self) -> int:
91
96
  """Clear all empty collections in the vector store.
@@ -35,7 +35,6 @@ class ChromaDB(VectorStore):
35
35
  except ImportError:
36
36
  raise LangroidImportError("chromadb", "chromadb")
37
37
  self.config = config
38
- self.embedding_fn = self.embedding_model.embedding_fn()
39
38
  self.client = chromadb.Client(
40
39
  chromadb.config.Settings(
41
40
  # chroma_db_impl="duckdb+parquet",
@@ -26,7 +26,7 @@ from langroid.embedding_models.base import (
26
26
  )
27
27
  from langroid.embedding_models.models import OpenAIEmbeddingsConfig
28
28
  from langroid.exceptions import LangroidImportError
29
- from langroid.mytypes import Document, EmbeddingFunction
29
+ from langroid.mytypes import Document
30
30
  from langroid.utils.configuration import settings
31
31
  from langroid.utils.pydantic_utils import (
32
32
  dataframe_to_document_model,
@@ -60,8 +60,6 @@ class LanceDB(VectorStore):
60
60
  raise LangroidImportError("lancedb", "lancedb")
61
61
 
62
62
  self.config: LanceDBConfig = config
63
- self.embedding_fn: EmbeddingFunction = self.embedding_model.embedding_fn()
64
- self.embedding_dim = self.embedding_model.embedding_dims
65
63
  self.host = config.host
66
64
  self.port = config.port
67
65
  self.is_from_dataframe = False # were docs ingested from a dataframe?
@@ -37,7 +37,7 @@ from langroid.embedding_models.base import (
37
37
  EmbeddingModelsConfig,
38
38
  )
39
39
  from langroid.embedding_models.models import OpenAIEmbeddingsConfig
40
- from langroid.mytypes import Document, EmbeddingFunction
40
+ from langroid.mytypes import Document
41
41
  from langroid.utils.configuration import settings
42
42
  from langroid.utils.pydantic_utils import (
43
43
  flatten_pydantic_instance,
@@ -61,8 +61,6 @@ class MomentoVI(VectorStore):
61
61
  raise LangroidImportError("momento", "momento")
62
62
  self.distance = SimilarityMetric.COSINE_SIMILARITY
63
63
  self.config: MomentoVIConfig = config
64
- self.embedding_fn: EmbeddingFunction = self.embedding_model.embedding_fn()
65
- self.embedding_dim = self.embedding_model.embedding_dims
66
64
  self.host = config.host
67
65
  self.port = config.port
68
66
  load_dotenv()
@@ -27,7 +27,7 @@ from langroid.embedding_models.base import (
27
27
  EmbeddingModelsConfig,
28
28
  )
29
29
  from langroid.embedding_models.models import OpenAIEmbeddingsConfig
30
- from langroid.mytypes import Document, EmbeddingFunction, Embeddings
30
+ from langroid.mytypes import Document, Embeddings
31
31
  from langroid.utils.configuration import settings
32
32
  from langroid.vector_store.base import VectorStore, VectorStoreConfig
33
33
 
@@ -77,8 +77,6 @@ class QdrantDB(VectorStore):
77
77
  def __init__(self, config: QdrantDBConfig = QdrantDBConfig()):
78
78
  super().__init__(config)
79
79
  self.config: QdrantDBConfig = config
80
- self.embedding_fn: EmbeddingFunction = self.embedding_model.embedding_fn()
81
- self.embedding_dim = len(self.embedding_fn(["test"])[0])
82
80
  if self.config.use_sparse_embeddings:
83
81
  try:
84
82
  from transformers import AutoModelForMaskedLM, AutoTokenizer
@@ -10,7 +10,7 @@ from langroid.embedding_models.base import (
10
10
  )
11
11
  from langroid.embedding_models.models import OpenAIEmbeddingsConfig
12
12
  from langroid.exceptions import LangroidImportError
13
- from langroid.mytypes import DocMetaData, Document, EmbeddingFunction
13
+ from langroid.mytypes import DocMetaData, Document
14
14
  from langroid.utils.configuration import settings
15
15
  from langroid.vector_store.base import VectorStore, VectorStoreConfig
16
16
 
@@ -38,8 +38,6 @@ class WeaviateDB(VectorStore):
38
38
  def __init__(self, config: WeaviateDBConfig = WeaviateDBConfig()):
39
39
  super().__init__(config)
40
40
  self.config: WeaviateDBConfig = config
41
- self.embedding_fn: EmbeddingFunction = self.embedding_model.embedding_fn()
42
- self.embedding_dim = self.embedding_model.embedding_dims
43
41
  load_dotenv()
44
42
  key = os.getenv("WEAVIATE_API_KEY")
45
43
  url = os.getenv("WEAVIATE_API_URL")
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "langroid"
3
- version = "0.37.3"
3
+ version = "0.37.5"
4
4
  authors = [
5
5
  {name = "Prasad Chalasani", email = "pchalasani@gmail.com"},
6
6
  ]
File without changes
File without changes
File without changes
File without changes
File without changes