Spaces:
Sleeping
Sleeping
Jac-Zac commited on
Commit ·
99c28ab
1
Parent(s): 4df7d97
Adding per layer clustering
Browse files- app.py +0 -6
- pyproject.toml +1 -1
- tabs/chat.py +13 -10
- tabs/chat_ui.py +8 -2
- tabs/compare.py +77 -12
- utils/chat.py +13 -3
- utils/chat_export.py +2 -2
- utils/runtime.py +3 -0
- uv.lock +55 -55
app.py
CHANGED
|
@@ -157,12 +157,6 @@ def main() -> None:
|
|
| 157 |
|
| 158 |
install_catppuccin_theme(st.get_option("theme.base"))
|
| 159 |
|
| 160 |
-
# Deferred: importing torch is slow; keep it after dotenv load (done at
|
| 161 |
-
# module level above) so the Streamlit page config renders immediately.
|
| 162 |
-
import torch
|
| 163 |
-
|
| 164 |
-
torch.set_grad_enabled(False)
|
| 165 |
-
|
| 166 |
sidebar = _sidebar_controls()
|
| 167 |
|
| 168 |
if sidebar.active_tab == "Extract":
|
|
|
|
| 157 |
|
| 158 |
install_catppuccin_theme(st.get_option("theme.base"))
|
| 159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 160 |
sidebar = _sidebar_controls()
|
| 161 |
|
| 162 |
if sidebar.active_tab == "Extract":
|
pyproject.toml
CHANGED
|
@@ -5,7 +5,7 @@ description = "Streamlit UI for persona-vectors"
|
|
| 5 |
readme = "README.md"
|
| 6 |
requires-python = ">=3.12"
|
| 7 |
dependencies = [
|
| 8 |
-
"persona-vectors>=0.7.
|
| 9 |
"persona-data>=0.4.2",
|
| 10 |
"datasets>=4.8.5",
|
| 11 |
"huggingface-hub>=1.14.0",
|
|
|
|
| 5 |
readme = "README.md"
|
| 6 |
requires-python = ">=3.12"
|
| 7 |
dependencies = [
|
| 8 |
+
"persona-vectors>=0.7.3",
|
| 9 |
"persona-data>=0.4.2",
|
| 10 |
"datasets>=4.8.5",
|
| 11 |
"huggingface-hub>=1.14.0",
|
tabs/chat.py
CHANGED
|
@@ -9,8 +9,6 @@ from tabs.chat_ui import (
|
|
| 9 |
render_persona_prompt_controls,
|
| 10 |
render_system_prompt,
|
| 11 |
)
|
| 12 |
-
from tabs.compare_chat import render_compare_mode
|
| 13 |
-
from tabs.probe_ui import render_probe_inspector
|
| 14 |
from utils.chat import (
|
| 15 |
ChatReply,
|
| 16 |
build_chat_messages,
|
|
@@ -155,6 +153,8 @@ def render_chat_tab(remote: bool, model_name: str, dataset_source: str) -> None:
|
|
| 155 |
last_token_contrast_key=_LAST_TOKEN_CONTRAST_KEY,
|
| 156 |
)
|
| 157 |
if tools.compare_mode:
|
|
|
|
|
|
|
| 158 |
render_compare_mode(
|
| 159 |
remote,
|
| 160 |
model_name,
|
|
@@ -225,14 +225,17 @@ def render_chat_tab(remote: bool, model_name: str, dataset_source: str) -> None:
|
|
| 225 |
),
|
| 226 |
)
|
| 227 |
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
|
| 231 |
-
|
| 232 |
-
|
| 233 |
-
|
| 234 |
-
|
| 235 |
-
|
|
|
|
|
|
|
|
|
|
| 236 |
|
| 237 |
render_chat_window(
|
| 238 |
chat_log=chat_log,
|
|
|
|
| 9 |
render_persona_prompt_controls,
|
| 10 |
render_system_prompt,
|
| 11 |
)
|
|
|
|
|
|
|
| 12 |
from utils.chat import (
|
| 13 |
ChatReply,
|
| 14 |
build_chat_messages,
|
|
|
|
| 153 |
last_token_contrast_key=_LAST_TOKEN_CONTRAST_KEY,
|
| 154 |
)
|
| 155 |
if tools.compare_mode:
|
| 156 |
+
from tabs.compare_chat import render_compare_mode
|
| 157 |
+
|
| 158 |
render_compare_mode(
|
| 159 |
remote,
|
| 160 |
model_name,
|
|
|
|
| 225 |
),
|
| 226 |
)
|
| 227 |
|
| 228 |
+
if tools.probe_enabled:
|
| 229 |
+
from tabs.probe_ui import render_probe_inspector
|
| 230 |
+
|
| 231 |
+
render_probe_inspector(
|
| 232 |
+
context_key=context_key,
|
| 233 |
+
model_name=model_name,
|
| 234 |
+
remote=remote,
|
| 235 |
+
active_system_prompt=active_system_prompt,
|
| 236 |
+
chat_state=chat_state,
|
| 237 |
+
enabled=True,
|
| 238 |
+
)
|
| 239 |
|
| 240 |
render_chat_window(
|
| 241 |
chat_log=chat_log,
|
tabs/chat_ui.py
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
|
|
|
|
|
| 1 |
from collections.abc import Callable
|
| 2 |
from dataclasses import asdict, dataclass
|
| 3 |
-
from typing import Any
|
| 4 |
|
| 5 |
import streamlit as st
|
| 6 |
from persona_data.synth_persona import PersonaData
|
| 7 |
|
| 8 |
-
from utils.contrast import TokenContrast, render_contrast_html
|
| 9 |
from utils.helpers import (
|
| 10 |
CHAT_PROMPT_MODE_LABEL_TO_KEY,
|
| 11 |
CHAT_PROMPT_MODE_LABELS,
|
|
@@ -14,6 +15,9 @@ from utils.helpers import (
|
|
| 14 |
widget_key,
|
| 15 |
)
|
| 16 |
|
|
|
|
|
|
|
|
|
|
| 17 |
GENERATION_DEFAULTS = {
|
| 18 |
"max_new_tokens": 256,
|
| 19 |
"temperature": 1.0,
|
|
@@ -326,6 +330,8 @@ def render_chat_message(
|
|
| 326 |
contrast: TokenContrast | None = message.get("_contrast") if show_contrast else None
|
| 327 |
with st.chat_message(message["role"]):
|
| 328 |
if contrast is not None:
|
|
|
|
|
|
|
| 329 |
st.html(render_contrast_html(contrast))
|
| 330 |
else:
|
| 331 |
st.markdown(message["content"])
|
|
|
|
| 1 |
+
from __future__ import annotations
|
| 2 |
+
|
| 3 |
from collections.abc import Callable
|
| 4 |
from dataclasses import asdict, dataclass
|
| 5 |
+
from typing import TYPE_CHECKING, Any
|
| 6 |
|
| 7 |
import streamlit as st
|
| 8 |
from persona_data.synth_persona import PersonaData
|
| 9 |
|
|
|
|
| 10 |
from utils.helpers import (
|
| 11 |
CHAT_PROMPT_MODE_LABEL_TO_KEY,
|
| 12 |
CHAT_PROMPT_MODE_LABELS,
|
|
|
|
| 15 |
widget_key,
|
| 16 |
)
|
| 17 |
|
| 18 |
+
if TYPE_CHECKING:
|
| 19 |
+
from utils.contrast import TokenContrast
|
| 20 |
+
|
| 21 |
GENERATION_DEFAULTS = {
|
| 22 |
"max_new_tokens": 256,
|
| 23 |
"temperature": 1.0,
|
|
|
|
| 330 |
contrast: TokenContrast | None = message.get("_contrast") if show_contrast else None
|
| 331 |
with st.chat_message(message["role"]):
|
| 332 |
if contrast is not None:
|
| 333 |
+
from utils.contrast import render_contrast_html
|
| 334 |
+
|
| 335 |
st.html(render_contrast_html(contrast))
|
| 336 |
else:
|
| 337 |
st.markdown(message["content"])
|
tabs/compare.py
CHANGED
|
@@ -72,6 +72,17 @@ _DEFAULT_PERSONA_LIMITS = {
|
|
| 72 |
}
|
| 73 |
_MAX_SIMILARITY_CELLS = 4_000_000
|
| 74 |
_MAX_PAIR_TRAJECTORY_TRACES = 500
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
|
| 76 |
|
| 77 |
def _is_assistant_persona(persona_id: str, persona_name: str | None = None) -> bool:
|
|
@@ -728,21 +739,65 @@ def _render_layered_figure_analysis(
|
|
| 728 |
return
|
| 729 |
|
| 730 |
n_clusters = None
|
|
|
|
|
|
|
|
|
|
|
|
|
| 731 |
if figure_kind in {"pca", "umap"}:
|
| 732 |
-
|
| 733 |
-
"Color by
|
| 734 |
value=False,
|
| 735 |
-
key=widget_key("load", "
|
| 736 |
-
help="
|
| 737 |
)
|
| 738 |
-
if
|
| 739 |
-
|
| 740 |
-
"
|
| 741 |
-
|
| 742 |
-
|
| 743 |
-
|
| 744 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 745 |
)
|
|
|
|
| 746 |
|
| 747 |
fig_key = widget_key(
|
| 748 |
"load",
|
|
@@ -753,6 +808,10 @@ def _render_layered_figure_analysis(
|
|
| 753 |
figure_kind,
|
| 754 |
str(n_components),
|
| 755 |
str(n_clusters),
|
|
|
|
|
|
|
|
|
|
|
|
|
| 756 |
variant,
|
| 757 |
"persona_vector",
|
| 758 |
persona_key,
|
|
@@ -781,8 +840,14 @@ def _render_layered_figure_analysis(
|
|
| 781 |
build_kwargs = {}
|
| 782 |
if figure_kind in {"umap", "pca"}:
|
| 783 |
build_kwargs["n_components"] = n_components
|
| 784 |
-
if
|
|
|
|
| 785 |
build_kwargs["n_clusters"] = n_clusters
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 786 |
if figure_kind == "similarity" and pair_trajectories:
|
| 787 |
main_fig, extra_fig = build_similarity_figures(
|
| 788 |
samples,
|
|
|
|
| 72 |
}
|
| 73 |
_MAX_SIMILARITY_CELLS = 4_000_000
|
| 74 |
_MAX_PAIR_TRAJECTORY_TRACES = 500
|
| 75 |
+
_CLUSTER_METHODS = {
|
| 76 |
+
"K-means": "kmeans",
|
| 77 |
+
"Agglomerative": "agglomerative",
|
| 78 |
+
"HDBSCAN": "hdbscan",
|
| 79 |
+
}
|
| 80 |
+
_CLUSTER_MODES = {
|
| 81 |
+
"Mean across layers": "mean_across_layers",
|
| 82 |
+
"First selected layer": "first_layer",
|
| 83 |
+
"Per layer": "per_layer",
|
| 84 |
+
}
|
| 85 |
+
_CLUSTER_LINKAGES = ["ward", "complete", "average", "single"]
|
| 86 |
|
| 87 |
|
| 88 |
def _is_assistant_persona(persona_id: str, persona_name: str | None = None) -> bool:
|
|
|
|
| 739 |
return
|
| 740 |
|
| 741 |
n_clusters = None
|
| 742 |
+
cluster_mode = None
|
| 743 |
+
cluster_method = None
|
| 744 |
+
cluster_linkage = None
|
| 745 |
+
min_cluster_size = None
|
| 746 |
if figure_kind in {"pca", "umap"}:
|
| 747 |
+
use_clusters = st.toggle(
|
| 748 |
+
"Color by clusters",
|
| 749 |
value=False,
|
| 750 |
+
key=widget_key("load", "clusters_enabled", scope, store_id(store)),
|
| 751 |
+
help="Cluster persona vectors and color points by cluster.",
|
| 752 |
)
|
| 753 |
+
if use_clusters:
|
| 754 |
+
method_label = st.selectbox(
|
| 755 |
+
"Cluster algorithm",
|
| 756 |
+
options=list(_CLUSTER_METHODS),
|
| 757 |
+
index=0,
|
| 758 |
+
key=widget_key("load", "cluster_method", scope, store_id(store)),
|
| 759 |
+
)
|
| 760 |
+
cluster_method = _CLUSTER_METHODS[method_label]
|
| 761 |
+
if cluster_method in {"kmeans", "agglomerative"}:
|
| 762 |
+
n_clusters = st.slider(
|
| 763 |
+
"K (clusters)",
|
| 764 |
+
min_value=2,
|
| 765 |
+
max_value=min(10, len(persona_ids)),
|
| 766 |
+
value=min(3, len(persona_ids)),
|
| 767 |
+
key=widget_key("load", "cluster_k", scope, store_id(store)),
|
| 768 |
+
)
|
| 769 |
+
if cluster_method == "agglomerative":
|
| 770 |
+
cluster_linkage = st.selectbox(
|
| 771 |
+
"Linkage",
|
| 772 |
+
options=_CLUSTER_LINKAGES,
|
| 773 |
+
index=0,
|
| 774 |
+
key=widget_key("load", "cluster_linkage", scope, store_id(store)),
|
| 775 |
+
)
|
| 776 |
+
if cluster_method == "hdbscan":
|
| 777 |
+
min_cluster_size = st.slider(
|
| 778 |
+
"Minimum cluster size",
|
| 779 |
+
min_value=2,
|
| 780 |
+
max_value=len(persona_ids),
|
| 781 |
+
value=min(5, len(persona_ids)),
|
| 782 |
+
key=widget_key(
|
| 783 |
+
"load",
|
| 784 |
+
"cluster_min_cluster_size",
|
| 785 |
+
scope,
|
| 786 |
+
store_id(store),
|
| 787 |
+
),
|
| 788 |
+
)
|
| 789 |
+
mode_label = st.selectbox(
|
| 790 |
+
"Cluster fit",
|
| 791 |
+
options=list(_CLUSTER_MODES),
|
| 792 |
+
index=0,
|
| 793 |
+
key=widget_key("load", "cluster_mode", scope, store_id(store)),
|
| 794 |
+
help=(
|
| 795 |
+
"Mean across layers is the previous behavior. First selected "
|
| 796 |
+
"layer keeps one fixed clustering from the first frame. Per layer "
|
| 797 |
+
"recomputes clustering for each animation frame."
|
| 798 |
+
),
|
| 799 |
)
|
| 800 |
+
cluster_mode = _CLUSTER_MODES[mode_label]
|
| 801 |
|
| 802 |
fig_key = widget_key(
|
| 803 |
"load",
|
|
|
|
| 808 |
figure_kind,
|
| 809 |
str(n_components),
|
| 810 |
str(n_clusters),
|
| 811 |
+
str(cluster_mode),
|
| 812 |
+
str(cluster_method),
|
| 813 |
+
str(cluster_linkage),
|
| 814 |
+
str(min_cluster_size),
|
| 815 |
variant,
|
| 816 |
"persona_vector",
|
| 817 |
persona_key,
|
|
|
|
| 840 |
build_kwargs = {}
|
| 841 |
if figure_kind in {"umap", "pca"}:
|
| 842 |
build_kwargs["n_components"] = n_components
|
| 843 |
+
if cluster_method is not None:
|
| 844 |
+
build_kwargs["cluster_method"] = cluster_method
|
| 845 |
build_kwargs["n_clusters"] = n_clusters
|
| 846 |
+
build_kwargs["cluster_mode"] = cluster_mode
|
| 847 |
+
if cluster_linkage is not None:
|
| 848 |
+
build_kwargs["cluster_linkage"] = cluster_linkage
|
| 849 |
+
if min_cluster_size is not None:
|
| 850 |
+
build_kwargs["min_cluster_size"] = min_cluster_size
|
| 851 |
if figure_kind == "similarity" and pair_trajectories:
|
| 852 |
main_fig, extra_fig = build_similarity_figures(
|
| 853 |
samples,
|
utils/chat.py
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
|
|
|
|
|
| 1 |
import logging
|
| 2 |
from contextlib import contextmanager, nullcontext
|
| 3 |
from dataclasses import dataclass
|
| 4 |
-
from typing import Literal
|
| 5 |
|
| 6 |
-
import torch
|
| 7 |
-
from nnterp import StandardizedTransformer
|
| 8 |
from persona_data.prompts import format_messages, format_prompt, normalize_messages
|
| 9 |
from persona_data.synth_persona import PersonaData
|
| 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
logger = logging.getLogger(__name__)
|
| 12 |
SystemPromptMode = Literal["empty", "templated", "biography", "custom"]
|
| 13 |
|
|
@@ -129,6 +133,8 @@ def format_generation_prompt(
|
|
| 129 |
|
| 130 |
def resolve_saved_tensor(value: object) -> torch.Tensor:
|
| 131 |
"""Resolve an nnsight ``.save()`` proxy (or raw tensor) to a CPU tensor."""
|
|
|
|
|
|
|
| 132 |
resolved = value.value if getattr(value, "value", None) is not None else value
|
| 133 |
if not isinstance(resolved, torch.Tensor):
|
| 134 |
raise TypeError(f"Trace result did not resolve to a tensor: {type(resolved)!r}")
|
|
@@ -154,6 +160,8 @@ def _seeded_rng(seed: int | None):
|
|
| 154 |
yield
|
| 155 |
return
|
| 156 |
|
|
|
|
|
|
|
| 157 |
cuda_ctx = torch.random.fork_rng(devices=range(torch.cuda.device_count()))
|
| 158 |
mps_ctx = (
|
| 159 |
torch.random.fork_rng(devices=range(1), device_type="mps")
|
|
@@ -199,6 +207,8 @@ def generate_chat_reply(
|
|
| 199 |
ChatReply with generated text and token ids.
|
| 200 |
"""
|
| 201 |
|
|
|
|
|
|
|
| 202 |
tokenizer = model.tokenizer
|
| 203 |
prompt, prompt_token_count = format_generation_prompt(messages, tokenizer)
|
| 204 |
|
|
|
|
| 1 |
+
from __future__ import annotations
|
| 2 |
+
|
| 3 |
import logging
|
| 4 |
from contextlib import contextmanager, nullcontext
|
| 5 |
from dataclasses import dataclass
|
| 6 |
+
from typing import TYPE_CHECKING, Literal
|
| 7 |
|
|
|
|
|
|
|
| 8 |
from persona_data.prompts import format_messages, format_prompt, normalize_messages
|
| 9 |
from persona_data.synth_persona import PersonaData
|
| 10 |
|
| 11 |
+
if TYPE_CHECKING:
|
| 12 |
+
import torch
|
| 13 |
+
from nnterp import StandardizedTransformer
|
| 14 |
+
|
| 15 |
logger = logging.getLogger(__name__)
|
| 16 |
SystemPromptMode = Literal["empty", "templated", "biography", "custom"]
|
| 17 |
|
|
|
|
| 133 |
|
| 134 |
def resolve_saved_tensor(value: object) -> torch.Tensor:
|
| 135 |
"""Resolve an nnsight ``.save()`` proxy (or raw tensor) to a CPU tensor."""
|
| 136 |
+
import torch
|
| 137 |
+
|
| 138 |
resolved = value.value if getattr(value, "value", None) is not None else value
|
| 139 |
if not isinstance(resolved, torch.Tensor):
|
| 140 |
raise TypeError(f"Trace result did not resolve to a tensor: {type(resolved)!r}")
|
|
|
|
| 160 |
yield
|
| 161 |
return
|
| 162 |
|
| 163 |
+
import torch
|
| 164 |
+
|
| 165 |
cuda_ctx = torch.random.fork_rng(devices=range(torch.cuda.device_count()))
|
| 166 |
mps_ctx = (
|
| 167 |
torch.random.fork_rng(devices=range(1), device_type="mps")
|
|
|
|
| 207 |
ChatReply with generated text and token ids.
|
| 208 |
"""
|
| 209 |
|
| 210 |
+
import torch
|
| 211 |
+
|
| 212 |
tokenizer = model.tokenizer
|
| 213 |
prompt, prompt_token_count = format_generation_prompt(messages, tokenizer)
|
| 214 |
|
utils/chat_export.py
CHANGED
|
@@ -3,8 +3,6 @@ from dataclasses import asdict, is_dataclass
|
|
| 3 |
from datetime import datetime, timezone
|
| 4 |
from pathlib import Path
|
| 5 |
|
| 6 |
-
from persona_data.environment import get_artifacts_dir
|
| 7 |
-
|
| 8 |
from utils.helpers import slugify
|
| 9 |
|
| 10 |
|
|
@@ -48,6 +46,8 @@ def save_chat_export(
|
|
| 48 |
The path the export was written to.
|
| 49 |
"""
|
| 50 |
|
|
|
|
|
|
|
| 51 |
payload = {
|
| 52 |
"model_name": model_name,
|
| 53 |
"dataset_source": dataset_source,
|
|
|
|
| 3 |
from datetime import datetime, timezone
|
| 4 |
from pathlib import Path
|
| 5 |
|
|
|
|
|
|
|
| 6 |
from utils.helpers import slugify
|
| 7 |
|
| 8 |
|
|
|
|
| 46 |
The path the export was written to.
|
| 47 |
"""
|
| 48 |
|
| 49 |
+
from persona_data.environment import get_artifacts_dir
|
| 50 |
+
|
| 51 |
payload = {
|
| 52 |
"model_name": model_name,
|
| 53 |
"dataset_source": dataset_source,
|
utils/runtime.py
CHANGED
|
@@ -103,6 +103,9 @@ def cached_model(model_name: str):
|
|
| 103 |
model objects when toggling NDIF.
|
| 104 |
"""
|
| 105 |
|
|
|
|
| 106 |
from nnterp import StandardizedTransformer
|
| 107 |
|
|
|
|
|
|
|
| 108 |
return StandardizedTransformer(model_name)
|
|
|
|
| 103 |
model objects when toggling NDIF.
|
| 104 |
"""
|
| 105 |
|
| 106 |
+
import torch
|
| 107 |
from nnterp import StandardizedTransformer
|
| 108 |
|
| 109 |
+
torch.set_grad_enabled(False)
|
| 110 |
+
|
| 111 |
return StandardizedTransformer(model_name)
|
uv.lock
CHANGED
|
@@ -748,11 +748,11 @@ wheels = [
|
|
| 748 |
|
| 749 |
[[package]]
|
| 750 |
name = "idna"
|
| 751 |
-
version = "3.
|
| 752 |
source = { registry = "https://pypi.org/simple" }
|
| 753 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 754 |
wheels = [
|
| 755 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 756 |
]
|
| 757 |
|
| 758 |
[[package]]
|
|
@@ -1498,54 +1498,54 @@ wheels = [
|
|
| 1498 |
|
| 1499 |
[[package]]
|
| 1500 |
name = "pandas"
|
| 1501 |
-
version = "3.0.
|
| 1502 |
source = { registry = "https://pypi.org/simple" }
|
| 1503 |
dependencies = [
|
| 1504 |
{ name = "numpy" },
|
| 1505 |
{ name = "python-dateutil" },
|
| 1506 |
{ name = "tzdata", marker = "sys_platform == 'emscripten' or sys_platform == 'win32'" },
|
| 1507 |
]
|
| 1508 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 1509 |
-
wheels = [
|
| 1510 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1511 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1512 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1513 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1514 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1515 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1516 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1517 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1518 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1519 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1520 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1521 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1522 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1523 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1524 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1525 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1526 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1527 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1528 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1529 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1530 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1531 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1532 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1533 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1534 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1535 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1536 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1537 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1538 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1539 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1540 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1541 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1542 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1543 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1544 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1545 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1546 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1547 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1548 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1549 |
]
|
| 1550 |
|
| 1551 |
[[package]]
|
|
@@ -1594,7 +1594,7 @@ requires-dist = [
|
|
| 1594 |
{ name = "datasets", specifier = ">=4.8.5" },
|
| 1595 |
{ name = "huggingface-hub", specifier = ">=1.14.0" },
|
| 1596 |
{ name = "persona-data", specifier = ">=0.4.2" },
|
| 1597 |
-
{ name = "persona-vectors", specifier = ">=0.7.
|
| 1598 |
{ name = "plotly", specifier = ">=6.6.0" },
|
| 1599 |
{ name = "python-dotenv", specifier = ">=1.2.2" },
|
| 1600 |
{ name = "streamlit", specifier = ">=1.44.0" },
|
|
@@ -1602,7 +1602,7 @@ requires-dist = [
|
|
| 1602 |
|
| 1603 |
[[package]]
|
| 1604 |
name = "persona-vectors"
|
| 1605 |
-
version = "0.7.
|
| 1606 |
source = { registry = "https://pypi.org/simple" }
|
| 1607 |
dependencies = [
|
| 1608 |
{ name = "datasets" },
|
|
@@ -1621,9 +1621,9 @@ dependencies = [
|
|
| 1621 |
{ name = "transformers" },
|
| 1622 |
{ name = "umap-learn" },
|
| 1623 |
]
|
| 1624 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 1625 |
wheels = [
|
| 1626 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1627 |
]
|
| 1628 |
|
| 1629 |
[[package]]
|
|
@@ -2102,11 +2102,11 @@ wheels = [
|
|
| 2102 |
|
| 2103 |
[[package]]
|
| 2104 |
name = "python-multipart"
|
| 2105 |
-
version = "0.0.
|
| 2106 |
source = { registry = "https://pypi.org/simple" }
|
| 2107 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 2108 |
wheels = [
|
| 2109 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2110 |
]
|
| 2111 |
|
| 2112 |
[[package]]
|
|
@@ -2278,7 +2278,7 @@ wheels = [
|
|
| 2278 |
|
| 2279 |
[[package]]
|
| 2280 |
name = "requests"
|
| 2281 |
-
version = "2.
|
| 2282 |
source = { registry = "https://pypi.org/simple" }
|
| 2283 |
dependencies = [
|
| 2284 |
{ name = "certifi" },
|
|
@@ -2286,9 +2286,9 @@ dependencies = [
|
|
| 2286 |
{ name = "idna" },
|
| 2287 |
{ name = "urllib3" },
|
| 2288 |
]
|
| 2289 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 2290 |
wheels = [
|
| 2291 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2292 |
]
|
| 2293 |
|
| 2294 |
[[package]]
|
|
|
|
| 748 |
|
| 749 |
[[package]]
|
| 750 |
name = "idna"
|
| 751 |
+
version = "3.14"
|
| 752 |
source = { registry = "https://pypi.org/simple" }
|
| 753 |
+
sdist = { url = "https://files.pythonhosted.org/packages/05/b1/efac073e0c297ecf2fb33c346989a529d4e19164f1759102dee5953ee17e/idna-3.14.tar.gz", hash = "sha256:466d810d7a2cc1022bea9b037c39728d51ae7dad40d480fc9b7d7ecf98ba8ee3", size = 198272, upload-time = "2026-05-10T20:32:15.935Z" }
|
| 754 |
wheels = [
|
| 755 |
+
{ url = "https://files.pythonhosted.org/packages/6c/3c/3f62dee257eb3d6b2c1ef2a09d36d9793c7111156a73b5654d2c2305e5ce/idna-3.14-py3-none-any.whl", hash = "sha256:e677eaf072e290f7b725f9acf0b3a2bd55f9fd6f7c70abe5f0e34823d0accf69", size = 72184, upload-time = "2026-05-10T20:32:14.295Z" },
|
| 756 |
]
|
| 757 |
|
| 758 |
[[package]]
|
|
|
|
| 1498 |
|
| 1499 |
[[package]]
|
| 1500 |
name = "pandas"
|
| 1501 |
+
version = "3.0.3"
|
| 1502 |
source = { registry = "https://pypi.org/simple" }
|
| 1503 |
dependencies = [
|
| 1504 |
{ name = "numpy" },
|
| 1505 |
{ name = "python-dateutil" },
|
| 1506 |
{ name = "tzdata", marker = "sys_platform == 'emscripten' or sys_platform == 'win32'" },
|
| 1507 |
]
|
| 1508 |
+
sdist = { url = "https://files.pythonhosted.org/packages/f8/87/4341c6252d1c47b08768c3d25ac487362bf403f0313ddae4a2a26c9b1b4c/pandas-3.0.3.tar.gz", hash = "sha256:696a4a00a2a2a35d4e5deb3fc946641b96c944f02230e4f76137fe35d806c4fc", size = 4651414, upload-time = "2026-05-11T18:54:29.21Z" }
|
| 1509 |
+
wheels = [
|
| 1510 |
+
{ url = "https://files.pythonhosted.org/packages/24/f1/392f8c5bfc16f66a0d2d41561c01627c228fe7ed2a0d056ef11315042570/pandas-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fed2ff7fd9779120e388e285fc029bd5cf9490cdd2e4166a9ee22c0e49a9ab09", size = 10357846, upload-time = "2026-05-11T18:52:36.143Z" },
|
| 1511 |
+
{ url = "https://files.pythonhosted.org/packages/cf/3d/b16412745651e855f357e5e66930248688378853a6e2698a214e331fba1f/pandas-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b168fc218fd80a6cbdbdbc1a97ddc7889ed057d7eb45f50d866ceab5f39904c4", size = 9899550, upload-time = "2026-05-11T18:52:38.976Z" },
|
| 1512 |
+
{ url = "https://files.pythonhosted.org/packages/31/a8/fa2535168fffcedf67f4f6de28d2dd903a747ca7c8ea6989451aaeb3a92f/pandas-3.0.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0383c72c75cdcca61a9e116e611143902dbfd08bff356829c2f6d1cf40a9ca8c", size = 10412965, upload-time = "2026-05-11T18:52:41.915Z" },
|
| 1513 |
+
{ url = "https://files.pythonhosted.org/packages/65/b6/09b01cdbc15224e2850365192d17b7bdebb8bdbd8780ed221fcdf0d9a515/pandas-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6dc0b3fd2169c9157deed50b4d519553a3655c8c6a96027136d654592be973a9", size = 10894600, upload-time = "2026-05-11T18:52:45.02Z" },
|
| 1514 |
+
{ url = "https://files.pythonhosted.org/packages/c9/a4/2eb28f2fccb4ced4a2c79ab2a5dee9ade1ebf44922ebad6fea158c9f95d4/pandas-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7e65d5407dc0b394f509699650e4a2ec01c0514f21850f453fa60f3be79a5dbf", size = 11422824, upload-time = "2026-05-11T18:52:48.058Z" },
|
| 1515 |
+
{ url = "https://files.pythonhosted.org/packages/f8/45/830bb57f533a4604b355e07edcb8ea18cf88b5f94e5fca92f27052d7c597/pandas-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f8894dc474d648fe7b6ff0ca9b0bd73950d19952bc1a6534540762c5d79d305c", size = 11950889, upload-time = "2026-05-11T18:52:50.905Z" },
|
| 1516 |
+
{ url = "https://files.pythonhosted.org/packages/b9/c5/fc1b368f303087d20e8c9bf3d6ceb186263cfac0ade735cd938538bea839/pandas-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:c7be265b62cef88e253a941e4698604973736dcfe242fdb5198f0f7bc473cdcc", size = 9755463, upload-time = "2026-05-11T18:52:53.386Z" },
|
| 1517 |
+
{ url = "https://files.pythonhosted.org/packages/86/bd/fda8f9705b1b09c6ebe14bfc0fa0e4ec8584d54ea673628f157ff55131af/pandas-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:557409bc4178e70ee8d9ddb494798e51ebf6ea59330f6be22c51bab2a7db6c49", size = 9066158, upload-time = "2026-05-11T18:52:56.038Z" },
|
| 1518 |
+
{ url = "https://files.pythonhosted.org/packages/c5/90/62d8302883c44308c477e222c3daf7c813a34c8e96985882fbd53d964352/pandas-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:67b3b64c11910cfa29f4e94a14d3bff9ee693b6fc76055e7cad549cee0aec5fa", size = 10331071, upload-time = "2026-05-11T18:52:58.838Z" },
|
| 1519 |
+
{ url = "https://files.pythonhosted.org/packages/7f/ae/6a6493c783a101f165e4356953ba3c74d6f77f0042fa7d753da9dfbb640c/pandas-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:39436b377d56d2a2e52d0395bdbee171f01068e99af5250509aceeb929f765c7", size = 9875690, upload-time = "2026-05-11T18:53:01.431Z" },
|
| 1520 |
+
{ url = "https://files.pythonhosted.org/packages/62/7c/5df8e9f56c69a2769fbe9382a5ef8f2658c007e376434e1e2cbb57ad895f/pandas-3.0.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4be06d68f9ddcfc645b87534911da79a8fbffc7573c80e0edcf42a5020624d8", size = 10381634, upload-time = "2026-05-11T18:53:04.393Z" },
|
| 1521 |
+
{ url = "https://files.pythonhosted.org/packages/99/68/1237369725aa617bb358263d535803e3053fdbc593513ec5ed9c9896b5b6/pandas-3.0.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a4eeb6830daf35a71cc09649bd823e2b542dac246cdee9614c6e4bd65028cd6a", size = 10891243, upload-time = "2026-05-11T18:53:07.643Z" },
|
| 1522 |
+
{ url = "https://files.pythonhosted.org/packages/25/93/77d108e8af7222b4a503ebde0e30215b1c2e4f8e53a526431890f22d5586/pandas-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1928e07221f82db493cd4af1e23c1bfca524a19a4699887975bff68f49a72bfb", size = 11388659, upload-time = "2026-05-11T18:53:10.634Z" },
|
| 1523 |
+
{ url = "https://files.pythonhosted.org/packages/d0/bd/eff5b4399f332ac386c853f6cd2bd3fa2ca0061b9f36ecd9c4d7c4265649/pandas-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51b1fe551acb77dac643c6fda86084d8d446c10fe64b06a9cc29c4cc8540e7f2", size = 11942880, upload-time = "2026-05-11T18:53:13.536Z" },
|
| 1524 |
+
{ url = "https://files.pythonhosted.org/packages/2c/20/559ace4200982c3887d0b86bfd0d856a2143ef8ddab63cc07934951a964c/pandas-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:a82d532a3351d435432cd913edbccaf8b8e01d4dd0e5ced5a8d2e8ecd94c7e44", size = 9757091, upload-time = "2026-05-11T18:53:16.306Z" },
|
| 1525 |
+
{ url = "https://files.pythonhosted.org/packages/3a/66/69055a09fe200f29f922a3eeec4804611900b95f52d932ece3393c3c0c19/pandas-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:275c14e0fce14a2ec20eee474aecd305478ea3c1e6f6a9d8fe219a165542717e", size = 9057282, upload-time = "2026-05-11T18:53:18.768Z" },
|
| 1526 |
+
{ url = "https://files.pythonhosted.org/packages/57/0e/efe801b0e6811e8e650cd21b7f2608e30f08a7067e2bf6e8752b0d56ee3c/pandas-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:46997386d528eb40376ecd6b033cf4a8a1e5282580f68f43de875b78cba2199d", size = 10767016, upload-time = "2026-05-11T18:53:21.227Z" },
|
| 1527 |
+
{ url = "https://files.pythonhosted.org/packages/ea/dc/eb55135a1d5f0f0519f28da1f609a206d2cad1f9c35c32d51e38dd7261ae/pandas-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:261e308dfb22448384b7580cf719d2f998fe2966c92893c3e77d14008af1f066", size = 10420210, upload-time = "2026-05-11T18:53:23.982Z" },
|
| 1528 |
+
{ url = "https://files.pythonhosted.org/packages/c6/3e/b1d5d955ce33ffecb407465a60bc32769d74fcf68224b7ae67ae11d4dea4/pandas-3.0.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dd1a5d1def6a46002e964510bdc67c368aa0951df5d1d9f8365336f5a1f490cd", size = 10336126, upload-time = "2026-05-11T18:53:26.731Z" },
|
| 1529 |
+
{ url = "https://files.pythonhosted.org/packages/f5/76/a01261711ab60a22d71b862f0de20e4c504bf80457270ad8cb42110f6abc/pandas-3.0.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d72828c20c6d6e83e1e22a6a3b47b326b71664112fa9705dcbccfd7a39b62085", size = 10728051, upload-time = "2026-05-11T18:53:29.125Z" },
|
| 1530 |
+
{ url = "https://files.pythonhosted.org/packages/e9/21/ea191195e587b18cf682e97f433f81b2d0fbe341380e80a3e0d6e4403c8e/pandas-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d26cbe1fcfc12e8fd900e2454163e466b2d3af84f7c75481df7683ffc073d870", size = 11350796, upload-time = "2026-05-11T18:53:32.056Z" },
|
| 1531 |
+
{ url = "https://files.pythonhosted.org/packages/64/69/f0eaaf54939f0e8c6768fd06be9af2cef9b36048b96dfb9e1b2c685a807e/pandas-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3e91cec1879ada0624fc3dc9953c5cbd60208e59c0db28f540c5d6d47502422f", size = 11799741, upload-time = "2026-05-11T18:53:34.985Z" },
|
| 1532 |
+
{ url = "https://files.pythonhosted.org/packages/45/a4/865e0e510cae5fc2194de4db28be638952de942571ba9125934fd9c01d47/pandas-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:08d789b41f87e0905880e293cedf6197ce71fe67cc081358b1e148a491b9bd13", size = 10499958, upload-time = "2026-05-11T18:53:37.857Z" },
|
| 1533 |
+
{ url = "https://files.pythonhosted.org/packages/86/54/effdcc3c0ff7a08037889200e148ebe94c16c4f653be078c7b3675955df1/pandas-3.0.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:3650109c0f22879df8bd6179ab9ee3d7f1d1d4e7e0094a3f0032d9f51e2e64ac", size = 10336065, upload-time = "2026-05-11T18:53:41.099Z" },
|
| 1534 |
+
{ url = "https://files.pythonhosted.org/packages/68/10/bf2d6738d72748b961a3751ab89522d58c54efc36a8e1a12161216cd45cf/pandas-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:bab900348131a7db1f69a7309ef141fd5680f1487094193bcbbb61791573bf8f", size = 9926101, upload-time = "2026-05-11T18:53:43.515Z" },
|
| 1535 |
+
{ url = "https://files.pythonhosted.org/packages/ae/e9/e35cf11c8a136e757b956f5f0efdcaa50aecde85ea055f1898dfc68262f3/pandas-3.0.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba7e08b9ac1d54569cd1e256e3668975ed624d6826f7b68df0342b012007bddb", size = 10457553, upload-time = "2026-05-11T18:53:46.394Z" },
|
| 1536 |
+
{ url = "https://files.pythonhosted.org/packages/58/3b/1cdec6772bdbaf7b25dab360c59f03cadf05492dd724c6540af905389b07/pandas-3.0.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d71c63ae4ebdbf70209742096f1fc46a83a0613c99d4b23766cced9ff8cd62a", size = 10914065, upload-time = "2026-05-11T18:53:49.134Z" },
|
| 1537 |
+
{ url = "https://files.pythonhosted.org/packages/c4/c2/1ef644445fcd72e3627bceec77e3560636f87ddce4ed841afe76b83b5bf9/pandas-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e3a2ec42c98ffa2565a67e08e218d06d72576d758d90facb7c00805194d8f360", size = 11459188, upload-time = "2026-05-11T18:53:52.527Z" },
|
| 1538 |
+
{ url = "https://files.pythonhosted.org/packages/7e/49/4d8d4f42cbc9c4adc7a1870f269c02cbd6cd40d059622c06fb298addcbad/pandas-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:335f62418ed562cfc3c49e9e196375c28b729dcef8543abf4f9438e381bf3c76", size = 11982966, upload-time = "2026-05-11T18:53:55.043Z" },
|
| 1539 |
+
{ url = "https://files.pythonhosted.org/packages/38/55/792619469bab9882d8bbd5865d45a72f6478762d04a9af4bf0d08c503e95/pandas-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:3c20a521bbb85902f79f7270c80a59e1b5452d96d170c034f207181870f97ac5", size = 9876755, upload-time = "2026-05-11T18:53:58.067Z" },
|
| 1540 |
+
{ url = "https://files.pythonhosted.org/packages/2a/af/33c469653b0ba03b50c3a98192d4c07f0c75c66b263ceb097fce0ee97d31/pandas-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:a2d2dff8a04f3917b55ab3910c32990f8ddf7eceba114947838cefa976a68977", size = 9198658, upload-time = "2026-05-11T18:54:00.733Z" },
|
| 1541 |
+
{ url = "https://files.pythonhosted.org/packages/a2/fa/b8c257bd76b8bd060c3a9151c1fca05e9b9c5e3af5d0f549c0356f6d143d/pandas-3.0.3-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:0d589105b3c14645af1738ff279b2995102d8f7a03b0a66dc8d95550eb513e04", size = 10787242, upload-time = "2026-05-11T18:54:03.564Z" },
|
| 1542 |
+
{ url = "https://files.pythonhosted.org/packages/54/eb/f19206ffb0bf1919002969aa448b4702c6594845156a6f8050674855aac3/pandas-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:13fc1e853d9e04743d11ba75a985ccbc2a317fe07d8af61e445a6fd24dacd6a6", size = 10436369, upload-time = "2026-05-11T18:54:06.311Z" },
|
| 1543 |
+
{ url = "https://files.pythonhosted.org/packages/fd/24/c7c39fb4fe22b71a0c2d78bf0c585c600092d85f94f086d2b3b2f6ca27e2/pandas-3.0.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:819959dab7bbd0049c15623fbac4e29a191b9528160a61fb1032242d8ced2d9c", size = 10358306, upload-time = "2026-05-11T18:54:09.085Z" },
|
| 1544 |
+
{ url = "https://files.pythonhosted.org/packages/16/ec/dd2a9eb7fa1204df88c0864164e35b228ac581062ac612ba0a67fd812e4c/pandas-3.0.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:60ae316d3fd75d1858d450d0db0103ea2be3e7d4a95ec2f064f7e2ae63f7b028", size = 10758394, upload-time = "2026-05-11T18:54:11.956Z" },
|
| 1545 |
+
{ url = "https://files.pythonhosted.org/packages/95/6e/00c61ea8e85b4f6d8d35e11852a1a4998fc7fafc91c6a602d1cc9c972d64/pandas-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bd3a518890b400d32f9023722dc9a9a5c969f00b415419a3c06c043f09bb5d7d", size = 11375717, upload-time = "2026-05-11T18:54:14.539Z" },
|
| 1546 |
+
{ url = "https://files.pythonhosted.org/packages/31/89/8fc1c268969fac43688d65fd92e67df24bd128d53cb4d2eee534cd307399/pandas-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9c39be2d709d01fa972a0cabc522389fceca4f3969332ba25a7d6c5802cf976a", size = 11828897, upload-time = "2026-05-11T18:54:17.146Z" },
|
| 1547 |
+
{ url = "https://files.pythonhosted.org/packages/56/3b/e7d20dea247a3e6dc0bd8a6953854afbedc03951def4e7371e05e7263e25/pandas-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4db8c527972a821cf5286b40ccc57642a39bc62e62022b42f99f8a67fca8c3a1", size = 10900855, upload-time = "2026-05-11T18:54:19.72Z" },
|
| 1548 |
+
{ url = "https://files.pythonhosted.org/packages/0f/54/68a0978d1ef8502b8492099beaa6e7a0c1b32e3b5d4f677f5810cb08711c/pandas-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b2c95f8bfc1ee412bf482605d7bfd30c12d1d26bd59fdd91efeef1d4718decb1", size = 9466464, upload-time = "2026-05-11T18:54:22.754Z" },
|
| 1549 |
]
|
| 1550 |
|
| 1551 |
[[package]]
|
|
|
|
| 1594 |
{ name = "datasets", specifier = ">=4.8.5" },
|
| 1595 |
{ name = "huggingface-hub", specifier = ">=1.14.0" },
|
| 1596 |
{ name = "persona-data", specifier = ">=0.4.2" },
|
| 1597 |
+
{ name = "persona-vectors", specifier = ">=0.7.3" },
|
| 1598 |
{ name = "plotly", specifier = ">=6.6.0" },
|
| 1599 |
{ name = "python-dotenv", specifier = ">=1.2.2" },
|
| 1600 |
{ name = "streamlit", specifier = ">=1.44.0" },
|
|
|
|
| 1602 |
|
| 1603 |
[[package]]
|
| 1604 |
name = "persona-vectors"
|
| 1605 |
+
version = "0.7.3"
|
| 1606 |
source = { registry = "https://pypi.org/simple" }
|
| 1607 |
dependencies = [
|
| 1608 |
{ name = "datasets" },
|
|
|
|
| 1621 |
{ name = "transformers" },
|
| 1622 |
{ name = "umap-learn" },
|
| 1623 |
]
|
| 1624 |
+
sdist = { url = "https://files.pythonhosted.org/packages/6d/36/25d766934dc43f60faeba8a51c698da78bdd9af2e5d191b7ce8721612dc4/persona_vectors-0.7.3.tar.gz", hash = "sha256:75a90e68142097419a2f1cf6d21878dc5202234c12ed342d63349796255baad6", size = 28641, upload-time = "2026-05-12T10:04:37.21Z" }
|
| 1625 |
wheels = [
|
| 1626 |
+
{ url = "https://files.pythonhosted.org/packages/6b/e7/db961133fda6755e215e6cd9d4058a1cb93719d05ab6e24030c5da885d15/persona_vectors-0.7.3-py3-none-any.whl", hash = "sha256:abf07b6715321a16b218aede69f7efac7bf6a309e090db62ee376e3f09240fde", size = 33224, upload-time = "2026-05-12T10:04:36.351Z" },
|
| 1627 |
]
|
| 1628 |
|
| 1629 |
[[package]]
|
|
|
|
| 2102 |
|
| 2103 |
[[package]]
|
| 2104 |
name = "python-multipart"
|
| 2105 |
+
version = "0.0.28"
|
| 2106 |
source = { registry = "https://pypi.org/simple" }
|
| 2107 |
+
sdist = { url = "https://files.pythonhosted.org/packages/82/54/a85eb421fbdd5007bc5af39d0f4ed9fa609e0fedbfdc2adcf0b34526870e/python_multipart-0.0.28.tar.gz", hash = "sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8", size = 45314, upload-time = "2026-05-10T11:05:16.596Z" }
|
| 2108 |
wheels = [
|
| 2109 |
+
{ url = "https://files.pythonhosted.org/packages/f3/a2/43bbc5860b5034e2af4ef99a0e04d726ff329c43e192ef3abaa8d7ecfce5/python_multipart-0.0.28-py3-none-any.whl", hash = "sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6", size = 29438, upload-time = "2026-05-10T11:05:15.052Z" },
|
| 2110 |
]
|
| 2111 |
|
| 2112 |
[[package]]
|
|
|
|
| 2278 |
|
| 2279 |
[[package]]
|
| 2280 |
name = "requests"
|
| 2281 |
+
version = "2.34.0"
|
| 2282 |
source = { registry = "https://pypi.org/simple" }
|
| 2283 |
dependencies = [
|
| 2284 |
{ name = "certifi" },
|
|
|
|
| 2286 |
{ name = "idna" },
|
| 2287 |
{ name = "urllib3" },
|
| 2288 |
]
|
| 2289 |
+
sdist = { url = "https://files.pythonhosted.org/packages/43/b8/7a707d60fea4c49094e40262cc0e2ca6c768cca21587e34d3f705afec47e/requests-2.34.0.tar.gz", hash = "sha256:7d62fe92f50eb82c529b0916bb445afa1531a566fc8f35ffdc64446e771b856a", size = 142436, upload-time = "2026-05-11T19:29:51.717Z" }
|
| 2290 |
wheels = [
|
| 2291 |
+
{ url = "https://files.pythonhosted.org/packages/ef/e6/e300fce5fe83c30520607a015dabd985df3251e188d234bfe9492e17a389/requests-2.34.0-py3-none-any.whl", hash = "sha256:917520a21b767485ce7c588f4ebb917c436b24a31231b44228715eaeb5a52c60", size = 73021, upload-time = "2026-05-11T19:29:49.923Z" },
|
| 2292 |
]
|
| 2293 |
|
| 2294 |
[[package]]
|