Spaces:
Runtime error
Runtime error
chicham
commited on
Pre-commit configuration (#1)
Browse files- .pre-commit-config.yaml +0 -6
- README.md +10 -10
- app.py +26 -17
.pre-commit-config.yaml
CHANGED
|
@@ -52,12 +52,6 @@ repos:
|
|
| 52 |
args: [--include="(src|tests|scripts)/"]
|
| 53 |
require_serial: true
|
| 54 |
types_or: [python, pyi]
|
| 55 |
-
- repo: https://github.com/econchick/interrogate
|
| 56 |
-
rev: 1.5.0
|
| 57 |
-
hooks:
|
| 58 |
-
- id: interrogate
|
| 59 |
-
exclude: ^(docs/conf.py|setup.py|scripts/)
|
| 60 |
-
args: [--config=setup.cfg, --quiet]
|
| 61 |
- repo: https://github.com/pre-commit/mirrors-prettier
|
| 62 |
rev: v2.5.1
|
| 63 |
hooks:
|
|
|
|
| 52 |
args: [--include="(src|tests|scripts)/"]
|
| 53 |
require_serial: true
|
| 54 |
types_or: [python, pyi]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
- repo: https://github.com/pre-commit/mirrors-prettier
|
| 56 |
rev: v2.5.1
|
| 57 |
hooks:
|
README.md
CHANGED
|
@@ -10,28 +10,28 @@ pinned: false
|
|
| 10 |
|
| 11 |
# Configuration
|
| 12 |
|
| 13 |
-
`title`: _string_
|
| 14 |
Display title for the Space
|
| 15 |
|
| 16 |
-
`emoji`: _string_
|
| 17 |
Space emoji (emoji-only character allowed)
|
| 18 |
|
| 19 |
-
`colorFrom`: _string_
|
| 20 |
Color for Thumbnail gradient (red, yellow, green, blue, indigo, purple, pink, gray)
|
| 21 |
|
| 22 |
-
`colorTo`: _string_
|
| 23 |
Color for Thumbnail gradient (red, yellow, green, blue, indigo, purple, pink, gray)
|
| 24 |
|
| 25 |
-
`sdk`: _string_
|
| 26 |
Can be either `gradio` or `streamlit`
|
| 27 |
|
| 28 |
-
`sdk_version` : _string_
|
| 29 |
-
Only applicable for `streamlit` SDK.
|
| 30 |
See [doc](https://hf.co/docs/hub/spaces) for more info on supported versions.
|
| 31 |
|
| 32 |
-
`app_file`: _string_
|
| 33 |
-
Path to your main application file (which contains either `gradio` or `streamlit` Python code).
|
| 34 |
Path is relative to the root of the repository.
|
| 35 |
|
| 36 |
-
`pinned`: _boolean_
|
| 37 |
Whether the Space stays on top of your list.
|
|
|
|
| 10 |
|
| 11 |
# Configuration
|
| 12 |
|
| 13 |
+
`title`: _string_
|
| 14 |
Display title for the Space
|
| 15 |
|
| 16 |
+
`emoji`: _string_
|
| 17 |
Space emoji (emoji-only character allowed)
|
| 18 |
|
| 19 |
+
`colorFrom`: _string_
|
| 20 |
Color for Thumbnail gradient (red, yellow, green, blue, indigo, purple, pink, gray)
|
| 21 |
|
| 22 |
+
`colorTo`: _string_
|
| 23 |
Color for Thumbnail gradient (red, yellow, green, blue, indigo, purple, pink, gray)
|
| 24 |
|
| 25 |
+
`sdk`: _string_
|
| 26 |
Can be either `gradio` or `streamlit`
|
| 27 |
|
| 28 |
+
`sdk_version` : _string_
|
| 29 |
+
Only applicable for `streamlit` SDK.
|
| 30 |
See [doc](https://hf.co/docs/hub/spaces) for more info on supported versions.
|
| 31 |
|
| 32 |
+
`app_file`: _string_
|
| 33 |
+
Path to your main application file (which contains either `gradio` or `streamlit` Python code).
|
| 34 |
Path is relative to the root of the repository.
|
| 35 |
|
| 36 |
+
`pinned`: _boolean_
|
| 37 |
Whether the Space stays on top of your list.
|
app.py
CHANGED
|
@@ -1,19 +1,22 @@
|
|
| 1 |
"""Demo gradio app for some text/query augmentation."""
|
| 2 |
-
|
| 3 |
from __future__ import annotations
|
| 4 |
-
|
| 5 |
import functools
|
|
|
|
| 6 |
from itertools import chain
|
| 7 |
-
from typing import Any
|
|
|
|
|
|
|
|
|
|
| 8 |
|
| 9 |
import attr
|
| 10 |
import environ
|
| 11 |
import fasttext # not working with python3.9
|
| 12 |
import gradio as gr
|
|
|
|
| 13 |
from transformers.pipelines import pipeline
|
| 14 |
from transformers.pipelines.base import Pipeline
|
| 15 |
from transformers.pipelines.token_classification import AggregationStrategy
|
| 16 |
-
from tokenizers.pre_tokenizers import Whitespace
|
| 17 |
|
| 18 |
|
| 19 |
def compose(*functions) -> Callable:
|
|
@@ -105,9 +108,8 @@ class AppConfig:
|
|
| 105 |
|
| 106 |
@environ.config
|
| 107 |
class NER:
|
| 108 |
-
# general = environ.var(default="Davlan/xlm-roberta-base-ner-hrl")
|
| 109 |
general = environ.var(
|
| 110 |
-
default="asahi417/tner-xlm-roberta-large-uncased-wnut2017"
|
| 111 |
)
|
| 112 |
|
| 113 |
recipe = environ.var(default="adamlin/recipe-tag-model")
|
|
@@ -122,13 +124,13 @@ def predict(
|
|
| 122 |
models: Models,
|
| 123 |
query: str,
|
| 124 |
categories: Sequence[str],
|
| 125 |
-
supported_languages:
|
| 126 |
-
) ->
|
| 127 |
Mapping[str, float],
|
| 128 |
str,
|
| 129 |
Mapping[str, float],
|
| 130 |
-
Sequence[
|
| 131 |
-
Sequence[
|
| 132 |
]:
|
| 133 |
"""Predict from a textual query:
|
| 134 |
- the language
|
|
@@ -146,7 +148,8 @@ def predict(
|
|
| 146 |
@mapped(map)
|
| 147 |
def format_label(prediction: Prediction) -> Prediction:
|
| 148 |
return attr.evolve(
|
| 149 |
-
prediction,
|
|
|
|
| 150 |
)
|
| 151 |
|
| 152 |
def filter_labels(prediction: Prediction) -> bool:
|
|
@@ -183,8 +186,9 @@ def predict(
|
|
| 183 |
return dict(zip(predictions["labels"], predictions["scores"]))
|
| 184 |
|
| 185 |
def extract_entities(
|
| 186 |
-
predict_fn: Callable,
|
| 187 |
-
|
|
|
|
| 188 |
def get_entity(pred: Mapping[str, str]):
|
| 189 |
return pred.get("entity", pred.get("entity_group", None))
|
| 190 |
|
|
@@ -195,7 +199,7 @@ def predict(
|
|
| 195 |
res = tuple(
|
| 196 |
chain.from_iterable(
|
| 197 |
((word, mapping[word]), (" ", None)) for word, _ in query_processed
|
| 198 |
-
)
|
| 199 |
)
|
| 200 |
return res
|
| 201 |
|
|
@@ -211,7 +215,9 @@ def main():
|
|
| 211 |
cfg: AppConfig = AppConfig.from_environ()
|
| 212 |
|
| 213 |
def load_translation_models(
|
| 214 |
-
sources: Sequence[str],
|
|
|
|
|
|
|
| 215 |
) -> Pipeline:
|
| 216 |
result = {
|
| 217 |
src: pipeline(f"translation_{src}_to_{target}", models)
|
|
@@ -238,7 +244,8 @@ def main():
|
|
| 238 |
),
|
| 239 |
classification=Predictor(
|
| 240 |
load_fn=lambda: pipeline(
|
| 241 |
-
"zero-shot-classification",
|
|
|
|
| 242 |
),
|
| 243 |
predict_fn=lambda model, query, categories: model(query, categories),
|
| 244 |
),
|
|
@@ -256,7 +263,9 @@ def main():
|
|
| 256 |
|
| 257 |
iface = gr.Interface(
|
| 258 |
fn=lambda query, categories: predict(
|
| 259 |
-
models,
|
|
|
|
|
|
|
| 260 |
),
|
| 261 |
examples=[["gateau au chocolat paris"], ["Newyork LA flight"]],
|
| 262 |
inputs=[
|
|
|
|
| 1 |
"""Demo gradio app for some text/query augmentation."""
|
|
|
|
| 2 |
from __future__ import annotations
|
| 3 |
+
|
| 4 |
import functools
|
| 5 |
+
from collections import defaultdict
|
| 6 |
from itertools import chain
|
| 7 |
+
from typing import Any
|
| 8 |
+
from typing import Callable
|
| 9 |
+
from typing import Mapping
|
| 10 |
+
from typing import Sequence
|
| 11 |
|
| 12 |
import attr
|
| 13 |
import environ
|
| 14 |
import fasttext # not working with python3.9
|
| 15 |
import gradio as gr
|
| 16 |
+
from tokenizers.pre_tokenizers import Whitespace
|
| 17 |
from transformers.pipelines import pipeline
|
| 18 |
from transformers.pipelines.base import Pipeline
|
| 19 |
from transformers.pipelines.token_classification import AggregationStrategy
|
|
|
|
| 20 |
|
| 21 |
|
| 22 |
def compose(*functions) -> Callable:
|
|
|
|
| 108 |
|
| 109 |
@environ.config
|
| 110 |
class NER:
|
|
|
|
| 111 |
general = environ.var(
|
| 112 |
+
default="asahi417/tner-xlm-roberta-large-uncased-wnut2017",
|
| 113 |
)
|
| 114 |
|
| 115 |
recipe = environ.var(default="adamlin/recipe-tag-model")
|
|
|
|
| 124 |
models: Models,
|
| 125 |
query: str,
|
| 126 |
categories: Sequence[str],
|
| 127 |
+
supported_languages: tuple[str, ...] = ("fr", "de"),
|
| 128 |
+
) -> tuple[
|
| 129 |
Mapping[str, float],
|
| 130 |
str,
|
| 131 |
Mapping[str, float],
|
| 132 |
+
Sequence[tuple[str, str | None]],
|
| 133 |
+
Sequence[tuple[str, str | None]],
|
| 134 |
]:
|
| 135 |
"""Predict from a textual query:
|
| 136 |
- the language
|
|
|
|
| 148 |
@mapped(map)
|
| 149 |
def format_label(prediction: Prediction) -> Prediction:
|
| 150 |
return attr.evolve(
|
| 151 |
+
prediction,
|
| 152 |
+
label=prediction.label.replace("__label__", ""),
|
| 153 |
)
|
| 154 |
|
| 155 |
def filter_labels(prediction: Prediction) -> bool:
|
|
|
|
| 186 |
return dict(zip(predictions["labels"], predictions["scores"]))
|
| 187 |
|
| 188 |
def extract_entities(
|
| 189 |
+
predict_fn: Callable,
|
| 190 |
+
query: str,
|
| 191 |
+
) -> Sequence[tuple[str, str | None]]:
|
| 192 |
def get_entity(pred: Mapping[str, str]):
|
| 193 |
return pred.get("entity", pred.get("entity_group", None))
|
| 194 |
|
|
|
|
| 199 |
res = tuple(
|
| 200 |
chain.from_iterable(
|
| 201 |
((word, mapping[word]), (" ", None)) for word, _ in query_processed
|
| 202 |
+
),
|
| 203 |
)
|
| 204 |
return res
|
| 205 |
|
|
|
|
| 215 |
cfg: AppConfig = AppConfig.from_environ()
|
| 216 |
|
| 217 |
def load_translation_models(
|
| 218 |
+
sources: Sequence[str],
|
| 219 |
+
target: str,
|
| 220 |
+
models: Sequence[str],
|
| 221 |
) -> Pipeline:
|
| 222 |
result = {
|
| 223 |
src: pipeline(f"translation_{src}_to_{target}", models)
|
|
|
|
| 244 |
),
|
| 245 |
classification=Predictor(
|
| 246 |
load_fn=lambda: pipeline(
|
| 247 |
+
"zero-shot-classification",
|
| 248 |
+
model=cfg.classification.model,
|
| 249 |
),
|
| 250 |
predict_fn=lambda model, query, categories: model(query, categories),
|
| 251 |
),
|
|
|
|
| 263 |
|
| 264 |
iface = gr.Interface(
|
| 265 |
fn=lambda query, categories: predict(
|
| 266 |
+
models,
|
| 267 |
+
query.strip(),
|
| 268 |
+
extract_commas_separated_values(categories),
|
| 269 |
),
|
| 270 |
examples=[["gateau au chocolat paris"], ["Newyork LA flight"]],
|
| 271 |
inputs=[
|