langroid 0.2.11__tar.gz → 0.3.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.
Files changed (135) hide show
  1. {langroid-0.2.11 → langroid-0.3.0}/PKG-INFO +4 -2
  2. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/sql/sql_chat_agent.py +16 -0
  3. {langroid-0.2.11 → langroid-0.3.0}/langroid/embedding_models/base.py +4 -0
  4. {langroid-0.2.11 → langroid-0.3.0}/langroid/embedding_models/models.py +54 -1
  5. {langroid-0.2.11 → langroid-0.3.0}/pyproject.toml +5 -2
  6. {langroid-0.2.11 → langroid-0.3.0}/LICENSE +0 -0
  7. {langroid-0.2.11 → langroid-0.3.0}/README.md +0 -0
  8. {langroid-0.2.11 → langroid-0.3.0}/langroid/__init__.py +0 -0
  9. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/__init__.py +0 -0
  10. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/base.py +0 -0
  11. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/batch.py +0 -0
  12. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/callbacks/__init__.py +0 -0
  13. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/callbacks/chainlit.py +0 -0
  14. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/chat_agent.py +0 -0
  15. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/chat_document.py +0 -0
  16. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/helpers.py +0 -0
  17. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/junk +0 -0
  18. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/openai_assistant.py +0 -0
  19. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/__init__.py +0 -0
  20. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/doc_chat_agent.py +0 -0
  21. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/lance_doc_chat_agent.py +0 -0
  22. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/lance_rag/__init__.py +0 -0
  23. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/lance_rag/critic_agent.py +0 -0
  24. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/lance_rag/lance_rag_task.py +0 -0
  25. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/lance_rag/query_planner_agent.py +0 -0
  26. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/lance_tools.py +0 -0
  27. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/neo4j/__init__.py +0 -0
  28. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/neo4j/csv_kg_chat.py +0 -0
  29. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/neo4j/neo4j_chat_agent.py +0 -0
  30. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/neo4j/utils/__init__.py +0 -0
  31. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/neo4j/utils/system_message.py +0 -0
  32. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/relevance_extractor_agent.py +0 -0
  33. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/retriever_agent.py +0 -0
  34. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/sql/__init__.py +0 -0
  35. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/sql/utils/__init__.py +0 -0
  36. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/sql/utils/description_extractors.py +0 -0
  37. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/sql/utils/populate_metadata.py +0 -0
  38. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/sql/utils/system_message.py +0 -0
  39. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/sql/utils/tools.py +0 -0
  40. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/special/table_chat_agent.py +0 -0
  41. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/task.py +0 -0
  42. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/tool_message.py +0 -0
  43. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/tools/__init__.py +0 -0
  44. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/tools/duckduckgo_search_tool.py +0 -0
  45. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/tools/extract_tool.py +0 -0
  46. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/tools/generator_tool.py +0 -0
  47. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/tools/google_search_tool.py +0 -0
  48. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/tools/metaphor_search_tool.py +0 -0
  49. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/tools/note_tool.py +0 -0
  50. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/tools/recipient_tool.py +0 -0
  51. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/tools/retrieval_tool.py +0 -0
  52. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/tools/rewind_tool.py +0 -0
  53. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/tools/run_python_code.py +0 -0
  54. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent/tools/segment_extract_tool.py +0 -0
  55. {langroid-0.2.11 → langroid-0.3.0}/langroid/agent_config.py +0 -0
  56. {langroid-0.2.11 → langroid-0.3.0}/langroid/cachedb/__init__.py +0 -0
  57. {langroid-0.2.11 → langroid-0.3.0}/langroid/cachedb/base.py +0 -0
  58. {langroid-0.2.11 → langroid-0.3.0}/langroid/cachedb/momento_cachedb.py +0 -0
  59. {langroid-0.2.11 → langroid-0.3.0}/langroid/cachedb/redis_cachedb.py +0 -0
  60. {langroid-0.2.11 → langroid-0.3.0}/langroid/embedding_models/__init__.py +0 -0
  61. {langroid-0.2.11 → langroid-0.3.0}/langroid/embedding_models/clustering.py +0 -0
  62. {langroid-0.2.11 → langroid-0.3.0}/langroid/embedding_models/protoc/__init__.py +0 -0
  63. {langroid-0.2.11 → langroid-0.3.0}/langroid/embedding_models/protoc/embeddings.proto +0 -0
  64. {langroid-0.2.11 → langroid-0.3.0}/langroid/embedding_models/protoc/embeddings_pb2.py +0 -0
  65. {langroid-0.2.11 → langroid-0.3.0}/langroid/embedding_models/protoc/embeddings_pb2.pyi +0 -0
  66. {langroid-0.2.11 → langroid-0.3.0}/langroid/embedding_models/protoc/embeddings_pb2_grpc.py +0 -0
  67. {langroid-0.2.11 → langroid-0.3.0}/langroid/embedding_models/remote_embeds.py +0 -0
  68. {langroid-0.2.11 → langroid-0.3.0}/langroid/exceptions.py +0 -0
  69. {langroid-0.2.11 → langroid-0.3.0}/langroid/language_models/__init__.py +0 -0
  70. {langroid-0.2.11 → langroid-0.3.0}/langroid/language_models/azure_openai.py +0 -0
  71. {langroid-0.2.11 → langroid-0.3.0}/langroid/language_models/base.py +0 -0
  72. {langroid-0.2.11 → langroid-0.3.0}/langroid/language_models/config.py +0 -0
  73. {langroid-0.2.11 → langroid-0.3.0}/langroid/language_models/mock_lm.py +0 -0
  74. {langroid-0.2.11 → langroid-0.3.0}/langroid/language_models/openai_gpt.py +0 -0
  75. {langroid-0.2.11 → langroid-0.3.0}/langroid/language_models/prompt_formatter/__init__.py +0 -0
  76. {langroid-0.2.11 → langroid-0.3.0}/langroid/language_models/prompt_formatter/base.py +0 -0
  77. {langroid-0.2.11 → langroid-0.3.0}/langroid/language_models/prompt_formatter/hf_formatter.py +0 -0
  78. {langroid-0.2.11 → langroid-0.3.0}/langroid/language_models/prompt_formatter/llama2_formatter.py +0 -0
  79. {langroid-0.2.11 → langroid-0.3.0}/langroid/language_models/utils.py +0 -0
  80. {langroid-0.2.11 → langroid-0.3.0}/langroid/mytypes.py +0 -0
  81. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/__init__.py +0 -0
  82. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/agent_chats.py +0 -0
  83. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/code-parsing.md +0 -0
  84. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/code_parser.py +0 -0
  85. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/config.py +0 -0
  86. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/document_parser.py +0 -0
  87. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/image_text.py +0 -0
  88. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/para_sentence_split.py +0 -0
  89. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/parse_json.py +0 -0
  90. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/parser.py +0 -0
  91. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/repo_loader.py +0 -0
  92. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/routing.py +0 -0
  93. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/search.py +0 -0
  94. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/spider.py +0 -0
  95. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/table_loader.py +0 -0
  96. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/url_loader.py +0 -0
  97. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/url_loader_cookies.py +0 -0
  98. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/urls.py +0 -0
  99. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/utils.py +0 -0
  100. {langroid-0.2.11 → langroid-0.3.0}/langroid/parsing/web_search.py +0 -0
  101. {langroid-0.2.11 → langroid-0.3.0}/langroid/prompts/__init__.py +0 -0
  102. {langroid-0.2.11 → langroid-0.3.0}/langroid/prompts/chat-gpt4-system-prompt.md +0 -0
  103. {langroid-0.2.11 → langroid-0.3.0}/langroid/prompts/dialog.py +0 -0
  104. {langroid-0.2.11 → langroid-0.3.0}/langroid/prompts/prompts_config.py +0 -0
  105. {langroid-0.2.11 → langroid-0.3.0}/langroid/prompts/templates.py +0 -0
  106. {langroid-0.2.11 → langroid-0.3.0}/langroid/pydantic_v1/__init__.py +0 -0
  107. {langroid-0.2.11 → langroid-0.3.0}/langroid/pydantic_v1/main.py +0 -0
  108. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/__init__.py +0 -0
  109. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/algorithms/__init__.py +0 -0
  110. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/algorithms/graph.py +0 -0
  111. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/configuration.py +0 -0
  112. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/constants.py +0 -0
  113. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/docker.py +0 -0
  114. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/globals.py +0 -0
  115. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/llms/__init__.py +0 -0
  116. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/llms/strings.py +0 -0
  117. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/logging.py +0 -0
  118. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/object_registry.py +0 -0
  119. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/output/__init__.py +0 -0
  120. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/output/citations.py +0 -0
  121. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/output/printing.py +0 -0
  122. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/output/status.py +0 -0
  123. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/pandas_utils.py +0 -0
  124. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/pydantic_utils.py +0 -0
  125. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/system.py +0 -0
  126. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/web/__init__.py +0 -0
  127. {langroid-0.2.11 → langroid-0.3.0}/langroid/utils/web/login.py +0 -0
  128. {langroid-0.2.11 → langroid-0.3.0}/langroid/vector_store/__init__.py +0 -0
  129. {langroid-0.2.11 → langroid-0.3.0}/langroid/vector_store/base.py +0 -0
  130. {langroid-0.2.11 → langroid-0.3.0}/langroid/vector_store/chromadb.py +0 -0
  131. {langroid-0.2.11 → langroid-0.3.0}/langroid/vector_store/lancedb.py +0 -0
  132. {langroid-0.2.11 → langroid-0.3.0}/langroid/vector_store/meilisearch.py +0 -0
  133. {langroid-0.2.11 → langroid-0.3.0}/langroid/vector_store/momento.py +0 -0
  134. {langroid-0.2.11 → langroid-0.3.0}/langroid/vector_store/qdrant_cloud.py +0 -0
  135. {langroid-0.2.11 → langroid-0.3.0}/langroid/vector_store/qdrantdb.py +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langroid
3
- Version: 0.2.11
3
+ Version: 0.3.0
4
4
  Summary: Harness LLMs with Multi-Agent Programming
5
5
  License: MIT
6
6
  Author: Prasad Chalasani
7
7
  Author-email: pchalasani@gmail.com
8
- Requires-Python: >=3.10,<4.0
8
+ Requires-Python: >=3.10,<3.13
9
9
  Classifier: License :: OSI Approved :: MIT License
10
10
  Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.10
@@ -17,6 +17,7 @@ Provides-Extra: chromadb
17
17
  Provides-Extra: db
18
18
  Provides-Extra: doc-chat
19
19
  Provides-Extra: docx
20
+ Provides-Extra: fastembed
20
21
  Provides-Extra: hf-embeddings
21
22
  Provides-Extra: hf-transformers
22
23
  Provides-Extra: lancedb
@@ -44,6 +45,7 @@ Requires-Dist: docstring-parser (>=0.15,<0.16)
44
45
  Requires-Dist: duckduckgo-search (>=6.0.0,<7.0.0)
45
46
  Requires-Dist: faker (>=18.9.0,<19.0.0)
46
47
  Requires-Dist: fakeredis (>=2.12.1,<3.0.0)
48
+ Requires-Dist: fastembed (>=0.3.1,<0.4.0) ; extra == "all" or extra == "fastembed"
47
49
  Requires-Dist: fire (>=0.5.0,<0.6.0)
48
50
  Requires-Dist: google-api-python-client (>=2.95.0,<3.0.0)
49
51
  Requires-Dist: google-generativeai (>=0.5.2,<0.6.0)
@@ -66,6 +66,17 @@ Start by asking what I would like to know about the data.
66
66
 
67
67
  """
68
68
 
69
+ ADDRESSING_INSTRUCTION = """
70
+ IMPORTANT - Whenever you are NOT writing a SQL query, make sure you address the user
71
+ using {prefix}User. You MUST use the EXACT syntax {prefix} !!!
72
+
73
+ In other words, you ALWAYS write EITHER:
74
+ - a SQL query using the `run_query` tool,
75
+ - OR address the user using {prefix}User.
76
+
77
+ """
78
+
79
+
69
80
  SQL_ERROR_MSG = "There was an error in your SQL Query"
70
81
 
71
82
 
@@ -81,6 +92,7 @@ class SQLChatAgentConfig(ChatAgentConfig):
81
92
  context_descriptions: Dict[str, Dict[str, Union[str, Dict[str, str]]]] = {}
82
93
  use_schema_tools: bool = False
83
94
  multi_schema: bool = False
95
+ addressing_prefix: str = ""
84
96
 
85
97
  """
86
98
  Optional, but strongly recommended, context descriptions for tables, columns,
@@ -206,6 +218,10 @@ class SQLChatAgent(ChatAgent):
206
218
  """Initialize message tools used for chatting."""
207
219
  message = self._format_message()
208
220
  self.config.system_message = self.config.system_message.format(mode=message)
221
+ if self.config.addressing_prefix != "":
222
+ self.config.system_message += ADDRESSING_INSTRUCTION.format(
223
+ prefix=self.config.addressing_prefix
224
+ )
209
225
  super().__init__(self.config)
210
226
  self.enable_message(RunQueryTool)
211
227
  if self.config.use_schema_tools:
@@ -24,6 +24,8 @@ class EmbeddingModel(ABC):
24
24
  @classmethod
25
25
  def create(cls, config: EmbeddingModelsConfig) -> "EmbeddingModel":
26
26
  from langroid.embedding_models.models import (
27
+ FastEmbedEmbeddings,
28
+ FastEmbedEmbeddingsConfig,
27
29
  OpenAIEmbeddings,
28
30
  OpenAIEmbeddingsConfig,
29
31
  SentenceTransformerEmbeddings,
@@ -40,6 +42,8 @@ class EmbeddingModel(ABC):
40
42
  return OpenAIEmbeddings(config)
41
43
  elif isinstance(config, SentenceTransformerEmbeddingsConfig):
42
44
  return SentenceTransformerEmbeddings(config)
45
+ elif isinstance(config, FastEmbedEmbeddingsConfig):
46
+ return FastEmbedEmbeddings(config)
43
47
  else:
44
48
  raise ValueError(f"Unknown embedding config: {config.__repr_name__}")
45
49
 
@@ -1,12 +1,14 @@
1
1
  import atexit
2
2
  import os
3
- from typing import Callable, List, Optional
3
+ from functools import cached_property
4
+ from typing import Any, Callable, Dict, List, Optional
4
5
 
5
6
  import tiktoken
6
7
  from dotenv import load_dotenv
7
8
  from openai import OpenAI
8
9
 
9
10
  from langroid.embedding_models.base import EmbeddingModel, EmbeddingModelsConfig
11
+ from langroid.exceptions import LangroidImportError
10
12
  from langroid.mytypes import Embeddings
11
13
  from langroid.parsing.utils import batched
12
14
 
@@ -32,6 +34,20 @@ class SentenceTransformerEmbeddingsConfig(EmbeddingModelsConfig):
32
34
  devices: Optional[list[str]] = None
33
35
 
34
36
 
37
+ class FastEmbedEmbeddingsConfig(EmbeddingModelsConfig):
38
+ """Config for qdrant/fastembed embeddings,
39
+ see here: https://github.com/qdrant/fastembed
40
+ """
41
+
42
+ model_type: str = "fastembed"
43
+ model_name: str = "BAAI/bge-small-en-v1.5"
44
+ batch_size: int = 256
45
+ cache_dir: Optional[str] = None
46
+ threads: Optional[int] = None
47
+ parallel: Optional[int] = None
48
+ additional_kwargs: Dict[str, Any] = {}
49
+
50
+
35
51
  class EmbeddingFunctionCallable:
36
52
  """
37
53
  A callable class designed to generate embeddings for a list of texts using
@@ -189,6 +205,41 @@ class SentenceTransformerEmbeddings(EmbeddingModel):
189
205
  return dims # type: ignore
190
206
 
191
207
 
208
+ class FastEmbedEmbeddings(EmbeddingModel):
209
+ def __init__(self, config: FastEmbedEmbeddingsConfig = FastEmbedEmbeddingsConfig()):
210
+ try:
211
+ from fastembed import TextEmbedding
212
+ except ImportError:
213
+ raise LangroidImportError("fastembed", extra="fastembed")
214
+
215
+ super().__init__()
216
+ self.config = config
217
+ self._batch_size = config.batch_size
218
+ self._parallel = config.parallel
219
+
220
+ self._model = TextEmbedding(
221
+ model_name=self.config.model_name,
222
+ cache_dir=self.config.cache_dir,
223
+ threads=self.config.threads,
224
+ **self.config.additional_kwargs,
225
+ )
226
+
227
+ def embedding_fn(self) -> Callable[[List[str]], Embeddings]:
228
+ def fn(texts: List[str]) -> Embeddings:
229
+ embeddings = self._model.embed(
230
+ texts, batch_size=self._batch_size, parallel=self._parallel
231
+ )
232
+
233
+ return [embedding.tolist() for embedding in embeddings]
234
+
235
+ return fn
236
+
237
+ @cached_property
238
+ def embedding_dims(self) -> int:
239
+ embed_func = self.embedding_fn()
240
+ return len(embed_func(["text"])[0])
241
+
242
+
192
243
  def embedding_model(embedding_fn_type: str = "openai") -> EmbeddingModel:
193
244
  """
194
245
  Args:
@@ -198,5 +249,7 @@ def embedding_model(embedding_fn_type: str = "openai") -> EmbeddingModel:
198
249
  """
199
250
  if embedding_fn_type == "openai":
200
251
  return OpenAIEmbeddings # type: ignore
252
+ elif embedding_fn_type == "fastembed":
253
+ return FastEmbedEmbeddings # type: ignore
201
254
  else: # default sentence transformer
202
255
  return SentenceTransformerEmbeddings # type: ignore
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "langroid"
3
- version = "0.2.11"
3
+ version = "0.3.0"
4
4
  description = "Harness LLMs with Multi-Agent Programming"
5
5
  authors = ["Prasad Chalasani <pchalasani@gmail.com>"]
6
6
  readme = "README.md"
@@ -10,7 +10,7 @@ include = ["pyproject.toml"]
10
10
 
11
11
  # =============== MAIN DEPS ==============
12
12
  [tool.poetry.dependencies]
13
- python = "^3.10"
13
+ python = ">=3.10,<3.13"
14
14
 
15
15
  # =========== OPTIONALS ==============================
16
16
  chromadb = {version=">=0.4.21, <=0.4.23", optional=true}
@@ -39,6 +39,7 @@ pyarrow = {version="15.0.0", optional=true}
39
39
  pdfplumber = {version="^0.10.2", optional=true}
40
40
  python-docx = {version="^1.1.0", optional=true}
41
41
  scrapy = {version="^2.11.0", optional=true}
42
+ fastembed = {version="^0.3.1", optional=true}
42
43
 
43
44
  # ====CORE================================
44
45
  pyyaml = "^6.0.1"
@@ -111,6 +112,7 @@ all = [
111
112
  "metaphor-python", "neo4j",
112
113
  "litellm",
113
114
  "chainlit", "python-socketio",
115
+ "fastembed"
114
116
  ]
115
117
  # more granular groupings
116
118
  lancedb = ["lancedb", "tantivy", "pyarrow"]
@@ -135,6 +137,7 @@ mkdocs = [
135
137
  ]
136
138
  meilisearch = ["meilisearch-python-sdk"]
137
139
  momento = ["momento"]
140
+ fastembed = ["fastembed"]
138
141
 
139
142
 
140
143
  # ================= DEV DEPS =================
File without changes
File without changes
File without changes
File without changes
File without changes