Upload app.py
Browse filesImpr layout + instruction
app.py
CHANGED
|
@@ -173,48 +173,68 @@ def main() -> None:
|
|
| 173 |
"### Получите атрибуты товара\n"
|
| 174 |
"Вставьте ссылку на карточку товара, чтобы извлечь структурированные данные."
|
| 175 |
)
|
| 176 |
-
|
| 177 |
with gr.Row():
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 218 |
|
| 219 |
submit_btn.click(
|
| 220 |
fn=extract_attributes,
|
|
|
|
| 173 |
"### Получите атрибуты товара\n"
|
| 174 |
"Вставьте ссылку на карточку товара, чтобы извлечь структурированные данные."
|
| 175 |
)
|
|
|
|
| 176 |
with gr.Row():
|
| 177 |
+
with gr.Column(scale=2):
|
| 178 |
+
url_input = gr.Textbox(
|
| 179 |
+
label="Target URL",
|
| 180 |
+
placeholder="https://example.com/product/123",
|
| 181 |
+
lines=1,
|
| 182 |
+
)
|
| 183 |
+
submit_btn = gr.Button("Извлечь атрибуты", variant="primary")
|
| 184 |
+
|
| 185 |
+
gau_dropdown = gr.Dropdown(
|
| 186 |
+
label="Вероятные ГАУ (выберите наиболее подходящий)",
|
| 187 |
+
choices=[],
|
| 188 |
+
interactive=True,
|
| 189 |
+
)
|
| 190 |
+
|
| 191 |
+
results_table = gr.Dataframe(
|
| 192 |
+
label="Результаты атрибутов",
|
| 193 |
+
interactive=False,
|
| 194 |
+
wrap=True,
|
| 195 |
+
type="pandas",
|
| 196 |
+
elem_id="results-table",
|
| 197 |
+
)
|
| 198 |
+
|
| 199 |
+
clipboard_box = gr.Textbox(
|
| 200 |
+
label=None,
|
| 201 |
+
interactive=False,
|
| 202 |
+
lines=1,
|
| 203 |
+
elem_id="tsv-output",
|
| 204 |
+
elem_classes=["tsv-hidden"],
|
| 205 |
+
container=False,
|
| 206 |
+
)
|
| 207 |
+
gr.HTML(
|
| 208 |
+
"""
|
| 209 |
+
<button onclick="
|
| 210 |
+
navigator.clipboard.writeText(
|
| 211 |
+
document.querySelector('#tsv-output textarea').value || ''
|
| 212 |
+
);
|
| 213 |
+
" style="width: 100%; padding: 8px; margin-top: -8px;">
|
| 214 |
+
📋 Скопировать атрибуты карточки
|
| 215 |
+
</button>
|
| 216 |
+
"""
|
| 217 |
+
)
|
| 218 |
+
|
| 219 |
+
with gr.Column(scale=1):
|
| 220 |
+
gr.Markdown(
|
| 221 |
+
"""
|
| 222 |
+
### 📚 Как пользоваться инструментом
|
| 223 |
+
|
| 224 |
+
Этот сервис помогает автоматически собрать характеристики товара по ссылке и подготовить их для Excel.
|
| 225 |
+
|
| 226 |
+
#### 🛠 Пошаговая инструкция:
|
| 227 |
+
1. **Найдите товар**: Откройте страницу товара в интернет-магазине и скопируйте ссылку из адресной строки.
|
| 228 |
+
2. **Вставьте ссылку**: Поместите её в поле **Target URL** слева.
|
| 229 |
+
3. **Запустите поиск**: Нажмите кнопку **"Извлечь атрибуты"**.
|
| 230 |
+
4. **Проверьте данные**:
|
| 231 |
+
- Результаты появятся в таблице ниже.
|
| 232 |
+
- Если система найдет несколько вариантов **ГАУ**, выберите нужный в выпадающем списке над таблицей.
|
| 233 |
+
5. **Сохраните**: Нажмите кнопку **"📋 Скопировать атрибуты"** под таблицей, затем перейдите в Excel и нажмите `Ctrl+V` (Вставить).
|
| 234 |
+
|
| 235 |
+
> **💡 Совет:** Если возникла ошибка, убедитесь, что ссылка ведет на карто��ку конкретного товара, а не на общий каталог.
|
| 236 |
+
"""
|
| 237 |
+
)
|
| 238 |
|
| 239 |
submit_btn.click(
|
| 240 |
fn=extract_attributes,
|