ragbits-core 0.16.0__py3-none-any.whl → 1.4.0.dev202512021005__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.
- ragbits/core/__init__.py +21 -2
- ragbits/core/audit/__init__.py +15 -157
- ragbits/core/audit/metrics/__init__.py +83 -0
- ragbits/core/audit/metrics/base.py +198 -0
- ragbits/core/audit/metrics/logfire.py +19 -0
- ragbits/core/audit/metrics/otel.py +65 -0
- ragbits/core/audit/traces/__init__.py +171 -0
- ragbits/core/audit/{base.py → traces/base.py} +9 -5
- ragbits/core/audit/{cli.py → traces/cli.py} +8 -4
- ragbits/core/audit/traces/logfire.py +18 -0
- ragbits/core/audit/{otel.py → traces/otel.py} +5 -8
- ragbits/core/config.py +15 -0
- ragbits/core/embeddings/__init__.py +2 -1
- ragbits/core/embeddings/base.py +19 -0
- ragbits/core/embeddings/dense/base.py +10 -1
- ragbits/core/embeddings/dense/fastembed.py +22 -1
- ragbits/core/embeddings/dense/litellm.py +37 -10
- ragbits/core/embeddings/dense/local.py +15 -1
- ragbits/core/embeddings/dense/noop.py +11 -1
- ragbits/core/embeddings/dense/vertex_multimodal.py +14 -1
- ragbits/core/embeddings/sparse/bag_of_tokens.py +47 -17
- ragbits/core/embeddings/sparse/base.py +10 -1
- ragbits/core/embeddings/sparse/fastembed.py +25 -2
- ragbits/core/llms/__init__.py +3 -3
- ragbits/core/llms/base.py +612 -88
- ragbits/core/llms/exceptions.py +27 -0
- ragbits/core/llms/litellm.py +408 -83
- ragbits/core/llms/local.py +180 -41
- ragbits/core/llms/mock.py +88 -23
- ragbits/core/prompt/__init__.py +2 -2
- ragbits/core/prompt/_cli.py +32 -19
- ragbits/core/prompt/base.py +105 -19
- ragbits/core/prompt/{discovery/prompt_discovery.py → discovery.py} +1 -1
- ragbits/core/prompt/exceptions.py +22 -6
- ragbits/core/prompt/prompt.py +180 -98
- ragbits/core/sources/__init__.py +2 -0
- ragbits/core/sources/azure.py +1 -1
- ragbits/core/sources/base.py +8 -1
- ragbits/core/sources/gcs.py +1 -1
- ragbits/core/sources/git.py +1 -1
- ragbits/core/sources/google_drive.py +595 -0
- ragbits/core/sources/hf.py +71 -31
- ragbits/core/sources/local.py +1 -1
- ragbits/core/sources/s3.py +1 -1
- ragbits/core/utils/config_handling.py +13 -2
- ragbits/core/utils/function_schema.py +220 -0
- ragbits/core/utils/helpers.py +22 -0
- ragbits/core/utils/lazy_litellm.py +44 -0
- ragbits/core/vector_stores/base.py +18 -1
- ragbits/core/vector_stores/chroma.py +28 -11
- ragbits/core/vector_stores/hybrid.py +1 -1
- ragbits/core/vector_stores/hybrid_strategies.py +21 -8
- ragbits/core/vector_stores/in_memory.py +13 -4
- ragbits/core/vector_stores/pgvector.py +123 -47
- ragbits/core/vector_stores/qdrant.py +15 -7
- ragbits/core/vector_stores/weaviate.py +440 -0
- {ragbits_core-0.16.0.dist-info → ragbits_core-1.4.0.dev202512021005.dist-info}/METADATA +22 -6
- ragbits_core-1.4.0.dev202512021005.dist-info/RECORD +79 -0
- {ragbits_core-0.16.0.dist-info → ragbits_core-1.4.0.dev202512021005.dist-info}/WHEEL +1 -1
- ragbits/core/prompt/discovery/__init__.py +0 -3
- ragbits/core/prompt/lab/__init__.py +0 -0
- ragbits/core/prompt/lab/app.py +0 -262
- ragbits_core-0.16.0.dist-info/RECORD +0 -72
ragbits/core/prompt/lab/app.py
DELETED
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
from dataclasses import dataclass, field, replace
|
|
3
|
-
from typing import Any, cast
|
|
4
|
-
|
|
5
|
-
try:
|
|
6
|
-
import gradio as gr
|
|
7
|
-
|
|
8
|
-
HAS_GRADIO = True
|
|
9
|
-
except ImportError:
|
|
10
|
-
HAS_GRADIO = False
|
|
11
|
-
|
|
12
|
-
import jinja2
|
|
13
|
-
from pydantic import BaseModel
|
|
14
|
-
from rich.console import Console
|
|
15
|
-
|
|
16
|
-
from ragbits.core.config import core_config
|
|
17
|
-
from ragbits.core.llms import LLM
|
|
18
|
-
from ragbits.core.llms.base import LLMType
|
|
19
|
-
from ragbits.core.prompt import Prompt
|
|
20
|
-
from ragbits.core.prompt.discovery import PromptDiscovery
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
@dataclass(frozen=True)
|
|
24
|
-
class PromptState:
|
|
25
|
-
"""
|
|
26
|
-
Class to store the current state of the application.
|
|
27
|
-
|
|
28
|
-
This class holds various data structures used throughout the application's lifecycle.
|
|
29
|
-
|
|
30
|
-
Attributes:
|
|
31
|
-
prompts (list): A list containing discovered prompts.
|
|
32
|
-
rendered_prompt (Prompt): The most recently rendered Prompt instance.
|
|
33
|
-
llm (LLM): The LLM instance to be used for generating responses.
|
|
34
|
-
"""
|
|
35
|
-
|
|
36
|
-
prompts: list = field(default_factory=list)
|
|
37
|
-
rendered_prompt: Prompt | None = None
|
|
38
|
-
llm: LLM | None = None
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
def render_prompt(index: int, system_prompt: str, user_prompt: str, state: PromptState, *args: Any) -> PromptState: # noqa: ANN401
|
|
42
|
-
"""
|
|
43
|
-
Renders a prompt based on the provided key, system prompt, user prompt, and input variables.
|
|
44
|
-
|
|
45
|
-
This function constructs a Prompt object using the prompt constructor and input constructor
|
|
46
|
-
associated with the given key. It then updates the current prompt in the application state.
|
|
47
|
-
|
|
48
|
-
Args:
|
|
49
|
-
index (int): The index of the prompt to render in the prompts state.
|
|
50
|
-
system_prompt (str): The system prompt template for the prompt.
|
|
51
|
-
user_prompt (str): The user prompt template for the prompt.
|
|
52
|
-
state (PromptState): The application state object.
|
|
53
|
-
args (tuple): A tuple of input values for the prompt.
|
|
54
|
-
|
|
55
|
-
Returns:
|
|
56
|
-
PromptState: The updated application state object.
|
|
57
|
-
"""
|
|
58
|
-
prompt_class = state.prompts[index]
|
|
59
|
-
prompt_class.system_prompt_template = jinja2.Template(system_prompt)
|
|
60
|
-
prompt_class.user_prompt_template = jinja2.Template(user_prompt)
|
|
61
|
-
|
|
62
|
-
input_type = prompt_class.input_type
|
|
63
|
-
input_fields = get_input_type_fields(input_type)
|
|
64
|
-
variables = {field["field_name"]: value for field, value in zip(input_fields, args, strict=False)}
|
|
65
|
-
input_data = input_type(**variables) if input_type is not None else None
|
|
66
|
-
prompt_object = prompt_class(input_data=input_data)
|
|
67
|
-
state = replace(state, rendered_prompt=prompt_object)
|
|
68
|
-
|
|
69
|
-
return state
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
def list_prompt_choices(state: PromptState) -> list[tuple[str, int]]:
|
|
73
|
-
"""
|
|
74
|
-
Returns a list of prompt choices based on the discovered prompts.
|
|
75
|
-
|
|
76
|
-
This function generates a list of tuples containing the names of discovered prompts and their
|
|
77
|
-
corresponding indices.
|
|
78
|
-
|
|
79
|
-
Args:
|
|
80
|
-
state (PromptState): The application state object.
|
|
81
|
-
|
|
82
|
-
Returns:
|
|
83
|
-
list[tuple[str, int]]: A list of tuples containing prompt names and their indices.
|
|
84
|
-
"""
|
|
85
|
-
return [(prompt.__name__, idx) for idx, prompt in enumerate(state.prompts)]
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
def send_prompt_to_llm(state: PromptState) -> str:
|
|
89
|
-
"""
|
|
90
|
-
Sends the current prompt to the LLM and returns the response.
|
|
91
|
-
|
|
92
|
-
This function creates a LiteLLM client using the LLM model name and API key stored in the
|
|
93
|
-
application state. It then calls the LLM client to generate a response based on the current prompt.
|
|
94
|
-
|
|
95
|
-
Args:
|
|
96
|
-
state (PromptState): The application state object.
|
|
97
|
-
|
|
98
|
-
Returns:
|
|
99
|
-
str: The response generated by the LLM.
|
|
100
|
-
|
|
101
|
-
Raises:
|
|
102
|
-
ValueError: If the LLM model is not configured.
|
|
103
|
-
"""
|
|
104
|
-
assert state.rendered_prompt is not None, "Prompt has not been rendered yet." # noqa: S101
|
|
105
|
-
|
|
106
|
-
if state.llm is None:
|
|
107
|
-
raise ValueError("LLM model is not configured.")
|
|
108
|
-
|
|
109
|
-
try:
|
|
110
|
-
response = cast(str, asyncio.run(state.llm.generate_raw(prompt=state.rendered_prompt))["response"])
|
|
111
|
-
except Exception as e: # pylint: disable=broad-except
|
|
112
|
-
response = str(e)
|
|
113
|
-
|
|
114
|
-
return response
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
def get_input_type_fields(obj: BaseModel | None) -> list[dict]:
|
|
118
|
-
"""
|
|
119
|
-
Retrieves the field names and default values from the input type of a prompt.
|
|
120
|
-
|
|
121
|
-
This function inspects the input type object associated with a prompt and extracts information
|
|
122
|
-
about its fields, including their names and default values.
|
|
123
|
-
|
|
124
|
-
Args:
|
|
125
|
-
obj (BaseModel): The input type object of the prompt.
|
|
126
|
-
|
|
127
|
-
Returns:
|
|
128
|
-
list[dict]: A list of dictionaries, each containing a field name and its default value.
|
|
129
|
-
"""
|
|
130
|
-
if obj is None:
|
|
131
|
-
return []
|
|
132
|
-
return [
|
|
133
|
-
{"field_name": k, "field_default_value": v["schema"].get("default", None)}
|
|
134
|
-
for (k, v) in obj.__pydantic_core_schema__["schema"]["fields"].items()
|
|
135
|
-
]
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
def lab_app( # pylint: disable=missing-param-doc
|
|
139
|
-
file_pattern: str = core_config.prompt_path_pattern,
|
|
140
|
-
llm_factory: str | None = core_config.llm_preference_factories[LLMType.TEXT],
|
|
141
|
-
) -> None:
|
|
142
|
-
"""
|
|
143
|
-
Launches the interactive application for listing, rendering, and testing prompts
|
|
144
|
-
defined within the current project.
|
|
145
|
-
"""
|
|
146
|
-
if not HAS_GRADIO:
|
|
147
|
-
Console(stderr=True).print(
|
|
148
|
-
"To use Prompt Lab, you need the Gradio library. Please install it using the following command:\n"
|
|
149
|
-
r"[b]pip install ragbits-core\[lab][/b]"
|
|
150
|
-
)
|
|
151
|
-
return
|
|
152
|
-
|
|
153
|
-
prompts = PromptDiscovery(file_pattern=file_pattern).discover()
|
|
154
|
-
|
|
155
|
-
if not prompts:
|
|
156
|
-
Console(stderr=True).print(
|
|
157
|
-
f"""No prompts were found for the given file pattern: [b]{file_pattern}[/b].
|
|
158
|
-
|
|
159
|
-
Please make sure that you are executing the command from the correct directory \
|
|
160
|
-
or provide a custom file pattern using the [b]--file-pattern[/b] flag."""
|
|
161
|
-
)
|
|
162
|
-
return
|
|
163
|
-
|
|
164
|
-
with gr.Blocks() as gr_app:
|
|
165
|
-
prompts_state = gr.State(
|
|
166
|
-
PromptState(
|
|
167
|
-
prompts=list(prompts),
|
|
168
|
-
llm=LLM.subclass_from_factory(llm_factory) if llm_factory else None,
|
|
169
|
-
)
|
|
170
|
-
)
|
|
171
|
-
|
|
172
|
-
prompt_selection_dropdown = gr.Dropdown(
|
|
173
|
-
choices=list_prompt_choices(prompts_state.value),
|
|
174
|
-
value=0,
|
|
175
|
-
label="Select Prompt",
|
|
176
|
-
)
|
|
177
|
-
|
|
178
|
-
@gr.render(inputs=[prompt_selection_dropdown, prompts_state])
|
|
179
|
-
def show_split(index: int, state: gr.State) -> None:
|
|
180
|
-
prompt = state.prompts[index]
|
|
181
|
-
list_of_vars = []
|
|
182
|
-
with gr.Row():
|
|
183
|
-
with gr.Column(scale=1), gr.Tab("Inputs"):
|
|
184
|
-
input_fields: list = get_input_type_fields(prompt.input_type)
|
|
185
|
-
for entry in input_fields:
|
|
186
|
-
with gr.Row():
|
|
187
|
-
var = gr.Textbox(
|
|
188
|
-
label=entry["field_name"],
|
|
189
|
-
value=entry["field_default_value"],
|
|
190
|
-
interactive=True,
|
|
191
|
-
)
|
|
192
|
-
list_of_vars.append(var)
|
|
193
|
-
|
|
194
|
-
render_prompt_button = gr.Button(value="Render prompts")
|
|
195
|
-
|
|
196
|
-
with gr.Column(scale=4), gr.Tab("Prompt"):
|
|
197
|
-
with gr.Row():
|
|
198
|
-
with gr.Column():
|
|
199
|
-
prompt_details_system_prompt = gr.Textbox(
|
|
200
|
-
label="System Prompt",
|
|
201
|
-
value=prompt.system_prompt,
|
|
202
|
-
interactive=True,
|
|
203
|
-
)
|
|
204
|
-
|
|
205
|
-
with gr.Column():
|
|
206
|
-
rendered_system_prompt = (
|
|
207
|
-
state.rendered_prompt.rendered_system_prompt if state.rendered_prompt else ""
|
|
208
|
-
)
|
|
209
|
-
gr.Textbox(
|
|
210
|
-
label="Rendered System Prompt",
|
|
211
|
-
value=rendered_system_prompt,
|
|
212
|
-
interactive=False,
|
|
213
|
-
)
|
|
214
|
-
|
|
215
|
-
with gr.Row():
|
|
216
|
-
with gr.Column():
|
|
217
|
-
prompt_details_user_prompt = gr.Textbox(
|
|
218
|
-
label="User Prompt",
|
|
219
|
-
value=prompt.user_prompt,
|
|
220
|
-
interactive=True,
|
|
221
|
-
)
|
|
222
|
-
|
|
223
|
-
with gr.Column():
|
|
224
|
-
rendered_user_prompt = (
|
|
225
|
-
state.rendered_prompt.rendered_user_prompt if state.rendered_prompt else ""
|
|
226
|
-
)
|
|
227
|
-
gr.Textbox(
|
|
228
|
-
label="Rendered User Prompt",
|
|
229
|
-
value=rendered_user_prompt,
|
|
230
|
-
interactive=False,
|
|
231
|
-
)
|
|
232
|
-
|
|
233
|
-
llm_enabled = state.llm is not None
|
|
234
|
-
prompt_ready = state.rendered_prompt is not None
|
|
235
|
-
llm_request_button = gr.Button(
|
|
236
|
-
value="Send to LLM",
|
|
237
|
-
interactive=llm_enabled and prompt_ready,
|
|
238
|
-
)
|
|
239
|
-
gr.Markdown(
|
|
240
|
-
"To enable this button set an LLM factory function in CLI options or your pyproject.toml",
|
|
241
|
-
visible=not llm_enabled,
|
|
242
|
-
)
|
|
243
|
-
gr.Markdown(
|
|
244
|
-
"To enable this button, render a prompt first.",
|
|
245
|
-
visible=llm_enabled and not prompt_ready,
|
|
246
|
-
)
|
|
247
|
-
llm_prompt_response = gr.Textbox(lines=10, label="LLM response")
|
|
248
|
-
|
|
249
|
-
render_prompt_button.click(
|
|
250
|
-
render_prompt,
|
|
251
|
-
[
|
|
252
|
-
prompt_selection_dropdown,
|
|
253
|
-
prompt_details_system_prompt,
|
|
254
|
-
prompt_details_user_prompt,
|
|
255
|
-
prompts_state,
|
|
256
|
-
*list_of_vars,
|
|
257
|
-
],
|
|
258
|
-
[prompts_state],
|
|
259
|
-
)
|
|
260
|
-
llm_request_button.click(send_prompt_to_llm, prompts_state, llm_prompt_response)
|
|
261
|
-
|
|
262
|
-
gr_app.launch()
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
ragbits/core/__init__.py,sha256=j41mAvtD3DsKRDr3JZwOFMxtBv2Zq62oWN1G3BjqS-k,225
|
|
2
|
-
ragbits/core/cli.py,sha256=dl6qCjT0VN4075Xf5CaxccavhPmuJIsDlpfLPdiEvao,489
|
|
3
|
-
ragbits/core/config.py,sha256=jwhGQo5J6ZbPoIG-3Vx6OC9UWBkRsjDLaNKU5Vsjnyc,1832
|
|
4
|
-
ragbits/core/options.py,sha256=TKdUaD2y-sCyQOJh6hxnxa70RYtsaE9rINJdAi4i_80,1666
|
|
5
|
-
ragbits/core/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
ragbits/core/types.py,sha256=nmEhQFCwLv33g6Mj5ntXeo9_d6YZLdKf7Nk3hfzCYgE,757
|
|
7
|
-
ragbits/core/audit/__init__.py,sha256=M_cUdFBhXNCWqP76RN9MIiuk-wFoQR65leRCnjbgBUM,4822
|
|
8
|
-
ragbits/core/audit/base.py,sha256=wBPMOHY6jWBPTeekY9KcTru_lF2KM2-MRUZQHG0dS_E,13754
|
|
9
|
-
ragbits/core/audit/cli.py,sha256=gChtMFC-AHEN0abRH3Jkjw2Ovf_hbB-vXvJXieaVF7g,9617
|
|
10
|
-
ragbits/core/audit/otel.py,sha256=Iv09-UhkoodKMR1Z-qpegooH3ABN2LJYGd_qI72EZH4,2211
|
|
11
|
-
ragbits/core/embeddings/__init__.py,sha256=LbVWIwkRBaMyLObmoZ2qxj8ooQk8tkonx4evb-YeUR8,451
|
|
12
|
-
ragbits/core/embeddings/base.py,sha256=LZNTuWplpqUULRp48hF10YJp0bKzENSNGMgdWkUy1pk,2265
|
|
13
|
-
ragbits/core/embeddings/exceptions.py,sha256=7DT-aT66Zd0l5K_HFvBmrs8_CuI4K46U4cQot0JQZcc,1222
|
|
14
|
-
ragbits/core/embeddings/dense/__init__.py,sha256=gYtKXiGQ9LycnONWkxSuwlABzH4YDUF48q7gzR1fH-M,233
|
|
15
|
-
ragbits/core/embeddings/dense/base.py,sha256=IYo-gX-QN-vy1Mbm-Tt2yW2uDOT5Uk2Pftyycbs_5Zc,1167
|
|
16
|
-
ragbits/core/embeddings/dense/fastembed.py,sha256=dEgEnHrxUpROTkXDX5Eqddn_TE5ndpN4_5wUeZY4BNg,2426
|
|
17
|
-
ragbits/core/embeddings/dense/litellm.py,sha256=JahshBZkpsoczwr9KPiY_L1KIco4pinD0QN3TXrXVvw,5763
|
|
18
|
-
ragbits/core/embeddings/dense/local.py,sha256=Ct1YnBmAHZ0KUkKC1yj5Ul60FHL1945UgY5fgRLb_MQ,2562
|
|
19
|
-
ragbits/core/embeddings/dense/noop.py,sha256=IrkFCobd6lvAFfxxSmT_uYOkwcSpvrNs3RNHhiRU4aY,4190
|
|
20
|
-
ragbits/core/embeddings/dense/vertex_multimodal.py,sha256=Yb7mFHzxlHEh0FHO0aZbSPf2PqoHueDe5m4E-uUQ-zk,7293
|
|
21
|
-
ragbits/core/embeddings/sparse/__init__.py,sha256=v04VqbGtr9TA3qpWJBtvTzGOlIbjadXdHe-Wv-w3q9w,280
|
|
22
|
-
ragbits/core/embeddings/sparse/bag_of_tokens.py,sha256=5aK8N3V0kz3W_DtV4ilFLeO1OB9pJyzrB19sWIZ82DQ,2685
|
|
23
|
-
ragbits/core/embeddings/sparse/base.py,sha256=GKt-U3Y5Tpn7DKH0zxjjhpBNHvpNgVtbxQqcUMYDJ6o,1242
|
|
24
|
-
ragbits/core/embeddings/sparse/fastembed.py,sha256=8ruYkIiO0oL0Dvw68dAy8urlJnbRCbDNcptITrfb34w,2457
|
|
25
|
-
ragbits/core/llms/__init__.py,sha256=mrpsrahvfXSvk1zarNd_Mf3xzfzma-CYI83_cY39oFk,169
|
|
26
|
-
ragbits/core/llms/base.py,sha256=-5REsWIj5ztV2i_R1p07fFYLpijGMuAPvP_Sq5MuDoY,9352
|
|
27
|
-
ragbits/core/llms/exceptions.py,sha256=aQkeiz-HireoYDjZhyLGxPcaE-Tc0A4jfsJnMX__qDM,1437
|
|
28
|
-
ragbits/core/llms/factory.py,sha256=T-heeY_7Llp5bOl6u9ycKK8ZwFnUE1ry4Q4X-O68hEQ,1506
|
|
29
|
-
ragbits/core/llms/litellm.py,sha256=DKBRzbLK16w8WPXqugwoGhtAwfiJrTUphc-ikdCaAbw,11976
|
|
30
|
-
ragbits/core/llms/local.py,sha256=FK0NgFcqoA2k2V4HqGnpUyJHX6sUcITSHaK8agWaUig,5766
|
|
31
|
-
ragbits/core/llms/mock.py,sha256=lRDgbdJUPugJIDOPqyCzMBpwln2sk3BE5uxO7hJjvuI,2410
|
|
32
|
-
ragbits/core/prompt/__init__.py,sha256=FYbstvqrhW4g0FTwjfw-rKO_OjJPHTNQWFT1FE4wll8,94
|
|
33
|
-
ragbits/core/prompt/_cli.py,sha256=TD7wrn8_RmVH6Q30FNgoSefHv9jXndg3qKhCbsVf-xg,3122
|
|
34
|
-
ragbits/core/prompt/base.py,sha256=4jOgYj1HErvwO5SbSj_BZub5rY8Ys6X3Kivw3BQBatQ,2499
|
|
35
|
-
ragbits/core/prompt/exceptions.py,sha256=-zOn5sbthLJWXrQ_1QBWFmb_046LL20TizdI58L5Dv4,558
|
|
36
|
-
ragbits/core/prompt/parsers.py,sha256=UP8RDQN0fr0yWh9fdTTofm4ugX6rDJLrwChihPv3ig4,3005
|
|
37
|
-
ragbits/core/prompt/prompt.py,sha256=2yPI84CN7mIv08b0HbtMzud7QiGZifxEAIqeRfN1_WU,14474
|
|
38
|
-
ragbits/core/prompt/promptfoo.py,sha256=P7UQ8zF0e_jsb_D4lglL5xKZe9hmOz2S0LLPx9Su1oo,1768
|
|
39
|
-
ragbits/core/prompt/discovery/__init__.py,sha256=0b_wbvKqHi--kRJ2BOuWLZ4QIpEQGow4Z2CuMrnaaHg,77
|
|
40
|
-
ragbits/core/prompt/discovery/prompt_discovery.py,sha256=yWXdBWOelbkBP79pj72auHC6JZOVGz2Jcz0UVL1bwv0,2826
|
|
41
|
-
ragbits/core/prompt/lab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
-
ragbits/core/prompt/lab/app.py,sha256=n9hgbRX8BX02kEUrjH8jLlYU-SbzXyRQ68p_NeDxJpc,9828
|
|
43
|
-
ragbits/core/sources/__init__.py,sha256=c_zdvfk_JD1pVwEGcjWyPEJJ9_J5dsBmglTQL_3PTqU,590
|
|
44
|
-
ragbits/core/sources/azure.py,sha256=C8tzC1PsuNfzLhWW5el19N_dqEE4Q_LND-m92jTBkIg,7512
|
|
45
|
-
ragbits/core/sources/base.py,sha256=E_wHUr1Txrej9Q1KqLt2o7AE-sDMr459zl2mQykONJ4,6579
|
|
46
|
-
ragbits/core/sources/exceptions.py,sha256=gv1d0kX304_kqLye6OfZ9szKTwaqLRszMYJCHRQuPRY,969
|
|
47
|
-
ragbits/core/sources/gcs.py,sha256=8cLsB0CG3pEAN86jaxqXyutN_aUl5s8sLFXFGQ85KAM,4837
|
|
48
|
-
ragbits/core/sources/git.py,sha256=Sf78EtKjwSLmJPt8ltj1MkvQRXsFAPBfN4wesTWCxoo,7608
|
|
49
|
-
ragbits/core/sources/hf.py,sha256=HrxMUqEm-FYL-fi-nqCoiS2T_W9LZ0B9UPFtxCYKtSs,4042
|
|
50
|
-
ragbits/core/sources/local.py,sha256=Nft4sBCsTtRv94LTGeZkkI0yqNRSB2MbfH315n-wdyU,2720
|
|
51
|
-
ragbits/core/sources/s3.py,sha256=MWRlVa1XA_aQV5iJg6FG4uuEA74Kf5HENNaAXbXGC9c,7339
|
|
52
|
-
ragbits/core/sources/web.py,sha256=daxifFHTBFK8QoCdtBWTWuoQ_D-LcQKoX2eHRje58DY,2717
|
|
53
|
-
ragbits/core/utils/__init__.py,sha256=kn8ht1kb2aWZ0c6Z_bn4tOpQFfr-ctJxkpKBZkN7vZ8,66
|
|
54
|
-
ragbits/core/utils/_pyproject.py,sha256=1I0VIDgUxsy4E7mNc09HVUrVDITSiytagIX6y0GfIYI,3608
|
|
55
|
-
ragbits/core/utils/config_handling.py,sha256=Wz78cM9fM_ohm65mRas9bZyOnxt-5M8DrKPcF9Vzdzk,7841
|
|
56
|
-
ragbits/core/utils/decorators.py,sha256=yZUwpI8cXLqNUEVMwN7JnlkvmhDvX4NNqgC6fKN-Pk4,1862
|
|
57
|
-
ragbits/core/utils/dict_transformations.py,sha256=RK4ANrpXwXv3DjA1DcsDRYPHhNkt_StGxUJkLKW_psA,9103
|
|
58
|
-
ragbits/core/utils/helpers.py,sha256=zTySnPGV8OEXHRYdLPtiOnHmazVFIPdJPSU2JlE_Dbs,349
|
|
59
|
-
ragbits/core/utils/pydantic.py,sha256=Wlqn1Jt1kS2zNsPAfzaixw1XTOa_-FO_tsvE7r2pIr4,704
|
|
60
|
-
ragbits/core/utils/secrets.py,sha256=Pjs6Tn1aBHY5vVerDkm9DBTgl8xawAuGPXX74xxs2Mw,1558
|
|
61
|
-
ragbits/core/vector_stores/__init__.py,sha256=UUeJ2nat1lU3irP7svCx0R_1ffAlaWG4H-X88z0i-Dg,281
|
|
62
|
-
ragbits/core/vector_stores/_cli.py,sha256=oI2JBp4HHtyCv85Ou5bZLBr12B2_0SjCQvrsR4KWdnk,3834
|
|
63
|
-
ragbits/core/vector_stores/base.py,sha256=JQeEj6R8ngLbs0UI5YbuGMHmfJ5Q6097eQ1pNqbLQgg,10649
|
|
64
|
-
ragbits/core/vector_stores/chroma.py,sha256=s96mP3XfhUPFxuQRUZDLHRYzk555QuFP1EleJvtqqB0,11319
|
|
65
|
-
ragbits/core/vector_stores/hybrid.py,sha256=x8ak3jn6nHHokSIrdUzufZA1Jv6k7SRaEwR8K5ZyX0U,4085
|
|
66
|
-
ragbits/core/vector_stores/hybrid_strategies.py,sha256=WreabPO5S7d1He-x8FjDJcFoIW77GIrdLeoYM-GwWrw,7554
|
|
67
|
-
ragbits/core/vector_stores/in_memory.py,sha256=y74el3h6JV3uRfg8nu0w9Zseu64ejHfziViQFqWYxNM,5928
|
|
68
|
-
ragbits/core/vector_stores/pgvector.py,sha256=xOPf51323oHTbxX-V1TwqYiiFsMas-qIiBrlAAndp-A,16805
|
|
69
|
-
ragbits/core/vector_stores/qdrant.py,sha256=SejPISannqEqyMoz--mOrNk_To4QDCi4VtzL0TtKucA,12569
|
|
70
|
-
ragbits_core-0.16.0.dist-info/METADATA,sha256=iwHBIzdkCKgybiL6lG6mSWVgZ5o1S43SJcVntLV7zgk,4289
|
|
71
|
-
ragbits_core-0.16.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
72
|
-
ragbits_core-0.16.0.dist-info/RECORD,,
|