langroid 0.31.1__py3-none-any.whl → 0.33.3__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.
Files changed (163) hide show
  1. {langroid-0.31.1.dist-info → langroid-0.33.3.dist-info}/METADATA +150 -124
  2. langroid-0.33.3.dist-info/RECORD +7 -0
  3. {langroid-0.31.1.dist-info → langroid-0.33.3.dist-info}/WHEEL +1 -1
  4. langroid-0.33.3.dist-info/entry_points.txt +4 -0
  5. pyproject.toml +317 -212
  6. langroid/__init__.py +0 -106
  7. langroid/agent/.chainlit/config.toml +0 -121
  8. langroid/agent/.chainlit/translations/bn.json +0 -231
  9. langroid/agent/.chainlit/translations/en-US.json +0 -229
  10. langroid/agent/.chainlit/translations/gu.json +0 -231
  11. langroid/agent/.chainlit/translations/he-IL.json +0 -231
  12. langroid/agent/.chainlit/translations/hi.json +0 -231
  13. langroid/agent/.chainlit/translations/kn.json +0 -231
  14. langroid/agent/.chainlit/translations/ml.json +0 -231
  15. langroid/agent/.chainlit/translations/mr.json +0 -231
  16. langroid/agent/.chainlit/translations/ta.json +0 -231
  17. langroid/agent/.chainlit/translations/te.json +0 -231
  18. langroid/agent/.chainlit/translations/zh-CN.json +0 -229
  19. langroid/agent/__init__.py +0 -41
  20. langroid/agent/base.py +0 -1981
  21. langroid/agent/batch.py +0 -398
  22. langroid/agent/callbacks/__init__.py +0 -0
  23. langroid/agent/callbacks/chainlit.py +0 -598
  24. langroid/agent/chat_agent.py +0 -1899
  25. langroid/agent/chat_document.py +0 -454
  26. langroid/agent/helpers.py +0 -0
  27. langroid/agent/junk +0 -13
  28. langroid/agent/openai_assistant.py +0 -882
  29. langroid/agent/special/__init__.py +0 -59
  30. langroid/agent/special/arangodb/__init__.py +0 -0
  31. langroid/agent/special/arangodb/arangodb_agent.py +0 -656
  32. langroid/agent/special/arangodb/system_messages.py +0 -186
  33. langroid/agent/special/arangodb/tools.py +0 -107
  34. langroid/agent/special/arangodb/utils.py +0 -36
  35. langroid/agent/special/doc_chat_agent.py +0 -1466
  36. langroid/agent/special/lance_doc_chat_agent.py +0 -262
  37. langroid/agent/special/lance_rag/__init__.py +0 -9
  38. langroid/agent/special/lance_rag/critic_agent.py +0 -198
  39. langroid/agent/special/lance_rag/lance_rag_task.py +0 -82
  40. langroid/agent/special/lance_rag/query_planner_agent.py +0 -260
  41. langroid/agent/special/lance_tools.py +0 -61
  42. langroid/agent/special/neo4j/__init__.py +0 -0
  43. langroid/agent/special/neo4j/csv_kg_chat.py +0 -174
  44. langroid/agent/special/neo4j/neo4j_chat_agent.py +0 -433
  45. langroid/agent/special/neo4j/system_messages.py +0 -120
  46. langroid/agent/special/neo4j/tools.py +0 -32
  47. langroid/agent/special/relevance_extractor_agent.py +0 -127
  48. langroid/agent/special/retriever_agent.py +0 -56
  49. langroid/agent/special/sql/__init__.py +0 -17
  50. langroid/agent/special/sql/sql_chat_agent.py +0 -654
  51. langroid/agent/special/sql/utils/__init__.py +0 -21
  52. langroid/agent/special/sql/utils/description_extractors.py +0 -190
  53. langroid/agent/special/sql/utils/populate_metadata.py +0 -85
  54. langroid/agent/special/sql/utils/system_message.py +0 -35
  55. langroid/agent/special/sql/utils/tools.py +0 -64
  56. langroid/agent/special/table_chat_agent.py +0 -263
  57. langroid/agent/structured_message.py +0 -9
  58. langroid/agent/task.py +0 -2093
  59. langroid/agent/tool_message.py +0 -393
  60. langroid/agent/tools/__init__.py +0 -38
  61. langroid/agent/tools/duckduckgo_search_tool.py +0 -50
  62. langroid/agent/tools/file_tools.py +0 -234
  63. langroid/agent/tools/google_search_tool.py +0 -39
  64. langroid/agent/tools/metaphor_search_tool.py +0 -67
  65. langroid/agent/tools/orchestration.py +0 -303
  66. langroid/agent/tools/recipient_tool.py +0 -235
  67. langroid/agent/tools/retrieval_tool.py +0 -32
  68. langroid/agent/tools/rewind_tool.py +0 -137
  69. langroid/agent/tools/segment_extract_tool.py +0 -41
  70. langroid/agent/typed_task.py +0 -19
  71. langroid/agent/xml_tool_message.py +0 -382
  72. langroid/agent_config.py +0 -0
  73. langroid/cachedb/__init__.py +0 -17
  74. langroid/cachedb/base.py +0 -58
  75. langroid/cachedb/momento_cachedb.py +0 -108
  76. langroid/cachedb/redis_cachedb.py +0 -153
  77. langroid/embedding_models/__init__.py +0 -39
  78. langroid/embedding_models/base.py +0 -74
  79. langroid/embedding_models/clustering.py +0 -189
  80. langroid/embedding_models/models.py +0 -461
  81. langroid/embedding_models/protoc/__init__.py +0 -0
  82. langroid/embedding_models/protoc/embeddings.proto +0 -19
  83. langroid/embedding_models/protoc/embeddings_pb2.py +0 -33
  84. langroid/embedding_models/protoc/embeddings_pb2.pyi +0 -50
  85. langroid/embedding_models/protoc/embeddings_pb2_grpc.py +0 -79
  86. langroid/embedding_models/remote_embeds.py +0 -153
  87. langroid/exceptions.py +0 -65
  88. langroid/experimental/team-save.py +0 -391
  89. langroid/language_models/.chainlit/config.toml +0 -121
  90. langroid/language_models/.chainlit/translations/en-US.json +0 -231
  91. langroid/language_models/__init__.py +0 -53
  92. langroid/language_models/azure_openai.py +0 -153
  93. langroid/language_models/base.py +0 -678
  94. langroid/language_models/config.py +0 -18
  95. langroid/language_models/mock_lm.py +0 -124
  96. langroid/language_models/openai_gpt.py +0 -1923
  97. langroid/language_models/prompt_formatter/__init__.py +0 -16
  98. langroid/language_models/prompt_formatter/base.py +0 -40
  99. langroid/language_models/prompt_formatter/hf_formatter.py +0 -132
  100. langroid/language_models/prompt_formatter/llama2_formatter.py +0 -75
  101. langroid/language_models/utils.py +0 -147
  102. langroid/mytypes.py +0 -84
  103. langroid/parsing/__init__.py +0 -52
  104. langroid/parsing/agent_chats.py +0 -38
  105. langroid/parsing/code-parsing.md +0 -86
  106. langroid/parsing/code_parser.py +0 -121
  107. langroid/parsing/config.py +0 -0
  108. langroid/parsing/document_parser.py +0 -718
  109. langroid/parsing/image_text.py +0 -32
  110. langroid/parsing/para_sentence_split.py +0 -62
  111. langroid/parsing/parse_json.py +0 -155
  112. langroid/parsing/parser.py +0 -313
  113. langroid/parsing/repo_loader.py +0 -790
  114. langroid/parsing/routing.py +0 -36
  115. langroid/parsing/search.py +0 -275
  116. langroid/parsing/spider.py +0 -102
  117. langroid/parsing/table_loader.py +0 -94
  118. langroid/parsing/url_loader.py +0 -111
  119. langroid/parsing/url_loader_cookies.py +0 -73
  120. langroid/parsing/urls.py +0 -273
  121. langroid/parsing/utils.py +0 -373
  122. langroid/parsing/web_search.py +0 -155
  123. langroid/prompts/__init__.py +0 -9
  124. langroid/prompts/chat-gpt4-system-prompt.md +0 -68
  125. langroid/prompts/dialog.py +0 -17
  126. langroid/prompts/prompts_config.py +0 -5
  127. langroid/prompts/templates.py +0 -141
  128. langroid/pydantic_v1/__init__.py +0 -10
  129. langroid/pydantic_v1/main.py +0 -4
  130. langroid/utils/.chainlit/config.toml +0 -121
  131. langroid/utils/.chainlit/translations/en-US.json +0 -231
  132. langroid/utils/__init__.py +0 -19
  133. langroid/utils/algorithms/__init__.py +0 -3
  134. langroid/utils/algorithms/graph.py +0 -103
  135. langroid/utils/configuration.py +0 -98
  136. langroid/utils/constants.py +0 -30
  137. langroid/utils/docker.py +0 -37
  138. langroid/utils/git_utils.py +0 -252
  139. langroid/utils/globals.py +0 -49
  140. langroid/utils/llms/__init__.py +0 -0
  141. langroid/utils/llms/strings.py +0 -8
  142. langroid/utils/logging.py +0 -135
  143. langroid/utils/object_registry.py +0 -66
  144. langroid/utils/output/__init__.py +0 -20
  145. langroid/utils/output/citations.py +0 -41
  146. langroid/utils/output/printing.py +0 -99
  147. langroid/utils/output/status.py +0 -40
  148. langroid/utils/pandas_utils.py +0 -30
  149. langroid/utils/pydantic_utils.py +0 -602
  150. langroid/utils/system.py +0 -286
  151. langroid/utils/types.py +0 -93
  152. langroid/utils/web/__init__.py +0 -0
  153. langroid/utils/web/login.py +0 -83
  154. langroid/vector_store/__init__.py +0 -50
  155. langroid/vector_store/base.py +0 -357
  156. langroid/vector_store/chromadb.py +0 -214
  157. langroid/vector_store/lancedb.py +0 -401
  158. langroid/vector_store/meilisearch.py +0 -299
  159. langroid/vector_store/momento.py +0 -278
  160. langroid/vector_store/qdrant_cloud.py +0 -6
  161. langroid/vector_store/qdrantdb.py +0 -468
  162. langroid-0.31.1.dist-info/RECORD +0 -162
  163. {langroid-0.31.1.dist-info → langroid-0.33.3.dist-info/licenses}/LICENSE +0 -0
langroid/utils/system.py DELETED
@@ -1,286 +0,0 @@
1
- import difflib
2
- import getpass
3
- import hashlib
4
- import importlib
5
- import importlib.metadata
6
- import inspect
7
- import logging
8
- import shutil
9
- import socket
10
- import traceback
11
- import uuid
12
- from pathlib import Path
13
- from typing import Any, Literal
14
-
15
- logger = logging.getLogger(__name__)
16
-
17
- DELETION_ALLOWED_PATHS = [
18
- ".qdrant",
19
- ".chroma",
20
- ".lancedb",
21
- ]
22
-
23
-
24
- def pydantic_major_version() -> int:
25
- try:
26
- pydantic_version = importlib.metadata.version("pydantic")
27
- major_version = int(pydantic_version.split(".")[0])
28
- return major_version
29
- except importlib.metadata.PackageNotFoundError:
30
- return -1
31
-
32
-
33
- class LazyLoad:
34
- """Lazy loading of modules or classes."""
35
-
36
- def __init__(self, import_path: str) -> None:
37
- self.import_path = import_path
38
- self._target = None
39
- self._is_target_loaded = False
40
-
41
- def _load_target(self) -> None:
42
- if not self._is_target_loaded:
43
- try:
44
- # Attempt to import as a module
45
- self._target = importlib.import_module(self.import_path) # type: ignore
46
- except ImportError:
47
- # If module import fails, attempt to import as a
48
- # class or function from a module
49
- module_path, attr_name = self.import_path.rsplit(".", 1)
50
- module = importlib.import_module(module_path)
51
- self._target = getattr(module, attr_name)
52
- self._is_target_loaded = True
53
-
54
- def __getattr__(self, name: str) -> Any:
55
- self._load_target()
56
- return getattr(self._target, name)
57
-
58
- def __call__(self, *args: Any, **kwargs: Any) -> Any:
59
- self._load_target()
60
- if callable(self._target):
61
- return self._target(*args, **kwargs)
62
- else:
63
- raise TypeError(f"{self.import_path!r} object is not callable")
64
-
65
-
66
- def rmdir(path: str) -> bool:
67
- """
68
- Remove a directory recursively.
69
- Args:
70
- path (str): path to directory to remove
71
- Returns:
72
- True if a dir was removed, false otherwise. Raises error if failed to remove.
73
- """
74
- if not any([path.startswith(p) for p in DELETION_ALLOWED_PATHS]):
75
- raise ValueError(
76
- f"""
77
- Removing Dir '{path}' not allowed.
78
- Must start with one of {DELETION_ALLOWED_PATHS}
79
- This is a safety measure to prevent accidental deletion of files.
80
- If you are sure you want to delete this directory, please add it
81
- to the `DELETION_ALLOWED_PATHS` list in langroid/utils/system.py and
82
- re-run the command.
83
- """
84
- )
85
-
86
- try:
87
- shutil.rmtree(path)
88
- except FileNotFoundError:
89
- logger.warning(f"Directory '{path}' does not exist. No action taken.")
90
- return False
91
- except Exception as e:
92
- logger.error(f"Error while removing directory '{path}': {e}")
93
- return True
94
-
95
-
96
- def caller_name() -> str:
97
- """
98
- Who called the function?
99
- """
100
- frame = inspect.currentframe()
101
- if frame is None:
102
- return ""
103
-
104
- caller_frame = frame.f_back
105
-
106
- # If there's no caller frame, the function was called from the global scope
107
- if caller_frame is None:
108
- return ""
109
-
110
- return caller_frame.f_code.co_name
111
-
112
-
113
- def friendly_error(e: Exception, msg: str = "An error occurred.") -> str:
114
- tb = traceback.format_exc()
115
- original_error_message: str = str(e)
116
- full_error_message: str = (
117
- f"{msg}\nOriginal error: {original_error_message}\nTraceback:\n{tb}"
118
- )
119
- return full_error_message
120
-
121
-
122
- def generate_user_id(org: str = "") -> str:
123
- """
124
- Generate a unique user ID based on the username and machine name.
125
- Returns:
126
- """
127
- # Get the username
128
- username = getpass.getuser()
129
-
130
- # Get the machine's name
131
- machine_name = socket.gethostname()
132
-
133
- org_pfx = f"{org}_" if org else ""
134
-
135
- # Create a consistent unique ID based on the username and machine name
136
- unique_string = f"{org_pfx}{username}@{machine_name}"
137
-
138
- # Generate a SHA-256 hash of the unique string
139
- user_id = hashlib.sha256(unique_string.encode()).hexdigest()
140
-
141
- return user_id
142
-
143
-
144
- def update_hash(hash: str | None = None, s: str = "") -> str:
145
- """
146
- Takes a SHA256 hash string and a new string, updates the hash with the new string,
147
- and returns the updated hash string.
148
-
149
- Args:
150
- hash (str): A SHA256 hash string.
151
- s (str): A new string to update the hash with.
152
-
153
- Returns:
154
- The updated hash in hexadecimal format.
155
- """
156
- # Create a new hash object if no hash is provided
157
- if hash is None:
158
- hash_obj = hashlib.sha256()
159
- else:
160
- # Convert the hexadecimal hash string to a byte object
161
- hash_bytes = bytes.fromhex(hash)
162
- hash_obj = hashlib.sha256(hash_bytes)
163
-
164
- # Update the hash with the new string
165
- hash_obj.update(s.encode("utf-8"))
166
-
167
- # Return the updated hash in hexadecimal format and the original string
168
- return hash_obj.hexdigest()
169
-
170
-
171
- def hash(s: str) -> str:
172
- """
173
- Generate a SHA256 hash of a string.
174
-
175
- Args:
176
- s (str): The string to hash.
177
-
178
- Returns:
179
- str: The SHA256 hash of the string.
180
- """
181
- return update_hash(s=s)
182
-
183
-
184
- def generate_unique_id() -> str:
185
- """Generate a unique ID using UUID4."""
186
- return str(uuid.uuid4())
187
-
188
-
189
- def create_file(
190
- filepath: str | Path,
191
- content: str = "",
192
- if_exists: Literal["overwrite", "skip", "error", "append"] = "overwrite",
193
- ) -> None:
194
- """
195
- Create, overwrite or append to a file, with the given content
196
- at the specified filepath.
197
- If content is empty, it will simply touch to create an empty file.
198
-
199
- Args:
200
- filepath (str|Path): The relative path of the file to be created
201
- content (str): The content to be written to the file
202
- if_exists (Literal["overwrite", "skip", "error", "append"]):
203
- Action to take if file exists
204
- """
205
- filepath = Path(filepath)
206
- filepath.parent.mkdir(parents=True, exist_ok=True)
207
-
208
- if filepath.exists():
209
- if if_exists == "skip":
210
- logger.warning(f"File already exists, skipping: {filepath}")
211
- return
212
- elif if_exists == "error":
213
- raise FileExistsError(f"File already exists: {filepath}")
214
- elif if_exists == "append":
215
- mode = "a"
216
- else: # overwrite
217
- mode = "w"
218
- else:
219
- mode = "w"
220
-
221
- if content == "" and mode in ["a", "w"]:
222
- filepath.touch()
223
- logger.warning(f"Empty file created: {filepath}")
224
- else:
225
- # the newline = '\n` argument is used to ensure that
226
- # newlines in the content are written as actual line breaks
227
- with open(filepath, mode, newline="\n") as f:
228
- f.write(content)
229
- action = "appended to" if mode == "a" else "created/updated in"
230
- logger.warning(f"Content {action}: {filepath}")
231
-
232
-
233
- def read_file(path: str, line_numbers: bool = False) -> str:
234
- """
235
- Read the contents of a file.
236
-
237
- Args:
238
- path (str): The path to the file to be read.
239
- line_numbers (bool, optional): If True, prepend line numbers to each line.
240
- Defaults to False.
241
-
242
- Returns:
243
- str: The contents of the file, optionally with line numbers.
244
-
245
- Raises:
246
- FileNotFoundError: If the specified file does not exist.
247
- """
248
- # raise an error if the file does not exist
249
- if not Path(path).exists():
250
- raise FileNotFoundError(f"File not found: {path}")
251
- file = Path(path).expanduser()
252
- content = file.read_text()
253
- if line_numbers:
254
- lines = content.splitlines()
255
- numbered_lines = [f"{i+1}: {line}" for i, line in enumerate(lines)]
256
- return "\n".join(numbered_lines)
257
- return content
258
-
259
-
260
- def diff_files(file1: str, file2: str) -> str:
261
- """
262
- Find the diffs between two files, in unified diff format.
263
- """
264
- with open(file1, "r") as f1, open(file2, "r") as f2:
265
- lines1 = f1.readlines()
266
- lines2 = f2.readlines()
267
-
268
- differ = difflib.unified_diff(lines1, lines2, fromfile=file1, tofile=file2)
269
- diff_result = "".join(differ)
270
- return diff_result
271
-
272
-
273
- def list_dir(path: str | Path) -> list[str]:
274
- """
275
- List the contents of a directory.
276
-
277
- Args:
278
- path (str): The path to the directory.
279
-
280
- Returns:
281
- list[str]: A list of the files and directories in the specified directory.
282
- """
283
- dir_path = Path(path)
284
- if not dir_path.is_dir():
285
- raise NotADirectoryError(f"Path is not a directory: {dir_path}")
286
- return [str(p) for p in dir_path.iterdir()]
langroid/utils/types.py DELETED
@@ -1,93 +0,0 @@
1
- import json
2
- import logging
3
- from typing import Any, Optional, Type, TypeVar, Union, get_args, get_origin
4
-
5
- from langroid.pydantic_v1 import BaseModel
6
-
7
- logger = logging.getLogger(__name__)
8
- PrimitiveType = Union[int, float, bool, str]
9
- T = TypeVar("T")
10
-
11
-
12
- def is_instance_of(obj: Any, type_hint: Type[T] | Any) -> bool:
13
- """
14
- Check if an object is an instance of a type hint, e.g.
15
- to check whether x is of type `List[ToolMessage]` or type `int`
16
- """
17
- if type_hint == Any:
18
- return True
19
-
20
- if type_hint is type(obj):
21
- return True
22
-
23
- origin = get_origin(type_hint)
24
- args = get_args(type_hint)
25
-
26
- if origin is Union:
27
- return any(is_instance_of(obj, arg) for arg in args)
28
-
29
- if origin: # e.g. List, Dict, Tuple, Set
30
- if isinstance(obj, origin):
31
- # check if all items in obj are of the required types
32
- if args:
33
- if isinstance(obj, (list, tuple, set)):
34
- return all(is_instance_of(item, args[0]) for item in obj)
35
- if isinstance(obj, dict):
36
- return all(
37
- is_instance_of(k, args[0]) and is_instance_of(v, args[1])
38
- for k, v in obj.items()
39
- )
40
- return True
41
- else:
42
- return False
43
-
44
- return isinstance(obj, type_hint)
45
-
46
-
47
- def to_string(msg: Any) -> str:
48
- """
49
- Best-effort conversion of arbitrary msg to str.
50
- Return empty string if conversion fails.
51
- """
52
- if msg is None:
53
- return ""
54
- if isinstance(msg, str):
55
- return msg
56
- if isinstance(msg, BaseModel):
57
- return msg.json()
58
- # last resort: use json.dumps() or str() to make it a str
59
- try:
60
- return json.dumps(msg)
61
- except Exception:
62
- try:
63
- return str(msg)
64
- except Exception as e:
65
- logger.error(
66
- f"""
67
- Error converting msg to str: {e}",
68
- """,
69
- exc_info=True,
70
- )
71
- return ""
72
-
73
-
74
- def from_string(
75
- s: str,
76
- output_type: Type[PrimitiveType],
77
- ) -> Optional[PrimitiveType]:
78
- if output_type is int:
79
- try:
80
- return int(s)
81
- except ValueError:
82
- return None
83
- elif output_type is float:
84
- try:
85
- return float(s)
86
- except ValueError:
87
- return None
88
- elif output_type is bool:
89
- return s.lower() in ("true", "yes", "1")
90
- elif output_type is str:
91
- return s
92
- else:
93
- return None
File without changes
@@ -1,83 +0,0 @@
1
- import requests
2
- from bs4 import BeautifulSoup
3
- from requests_oauthlib import OAuth2Session
4
-
5
-
6
- def login_and_navigate(
7
- url: str,
8
- login: str,
9
- pw: str,
10
- page_link: str,
11
- client_id=None,
12
- client_secret=None,
13
- redirect_uri=None,
14
- scope=None,
15
- token_url=None,
16
- oauth_password=None,
17
- ):
18
- session = requests.Session()
19
-
20
- # Check if OAuth is needed
21
- if client_id and client_secret and redirect_uri and scope and token_url:
22
- oauth = OAuth2Session(client_id, redirect_uri=redirect_uri, scope=scope)
23
- authorization_url, state = oauth.authorization_url(url)
24
- session = oauth
25
-
26
- print(
27
- f"Please go to the following URL and authorize the app:"
28
- f" {authorization_url}"
29
- )
30
- authorization_response = input("Enter the full callback URL: ")
31
-
32
- # If an additional OAuth password is required
33
- if oauth_password:
34
- # Add the required password field to the token request
35
- token_params = {
36
- "password": oauth_password,
37
- }
38
- else:
39
- token_params = {}
40
-
41
- token = oauth.fetch_token(
42
- token_url,
43
- authorization_response=authorization_response,
44
- client_secret=client_secret,
45
- **token_params,
46
- )
47
- session.headers.update({"Authorization": f"Bearer {token['access_token']}"})
48
-
49
- response = session.get(url)
50
- soup = BeautifulSoup(response.content, "html.parser")
51
-
52
- # Find the login form and fill in the username and password fields
53
- login_form = soup.find("form")
54
- if not login_form:
55
- raise ValueError("Login form not found")
56
-
57
- form_data = {
58
- field.get("name"): field.get("value")
59
- for field in login_form.find_all("input")
60
- if field.get("name")
61
- }
62
- form_data[login] = login
63
- form_data[pw] = pw
64
-
65
- # Submit the login form
66
- login_url = url + login_form["action"]
67
- response = session.post(login_url, data=form_data)
68
- response.raise_for_status()
69
-
70
- # Navigate to the desired page
71
- response = session.get(page_link)
72
- response.raise_for_status()
73
-
74
- return response.text
75
-
76
-
77
- # Example usage:
78
- # response_text = login_and_navigate("https://example.com",
79
- # "your_username_field_name",
80
- # "your_password_field_name",
81
- # "https://example.com/target-page",
82
- # oauth_password="your_oauth_password")
83
- # print(response_text)
@@ -1,50 +0,0 @@
1
- from . import base
2
-
3
- from . import qdrantdb
4
-
5
- from .base import VectorStoreConfig, VectorStore
6
- from .qdrantdb import QdrantDBConfig, QdrantDB
7
-
8
- __all__ = [
9
- "base",
10
- "VectorStore",
11
- "VectorStoreConfig",
12
- "qdrantdb",
13
- "QdrantDBConfig",
14
- "QdrantDB",
15
- ]
16
-
17
-
18
- try:
19
- from . import meilisearch
20
- from .meilisearch import MeiliSearch, MeiliSearchConfig
21
-
22
- meilisearch
23
- MeiliSearch
24
- MeiliSearchConfig
25
- __all__.extend(["meilisearch", "MeiliSearch", "MeiliSearchConfig"])
26
- except ImportError:
27
- pass
28
-
29
-
30
- try:
31
- from . import lancedb
32
- from .lancedb import LanceDB, LanceDBConfig
33
-
34
- lancedb
35
- LanceDB
36
- LanceDBConfig
37
- __all__.extend(["lancedb", "LanceDB", "LanceDBConfig"])
38
- except ImportError:
39
- pass
40
-
41
- try:
42
- from . import chromadb
43
- from .chromadb import ChromaDBConfig, ChromaDB
44
-
45
- chromadb # silence linters
46
- ChromaDB
47
- ChromaDBConfig
48
- __all__.extend(["chromadb", "ChromaDBConfig", "ChromaDB"])
49
- except ImportError:
50
- pass