Spaces:
Sleeping
Sleeping
Initial prototype
Browse files- .gitignore +196 -0
- README.md +3 -3
- app.py +512 -0
- requirements.txt +3 -0
- static/loading.gif +0 -0
- static/scenarios.csv +196 -0
.gitignore
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Byte-compiled / optimized / DLL files
|
| 2 |
+
__pycache__/
|
| 3 |
+
*.py[cod]
|
| 4 |
+
*$py.class
|
| 5 |
+
|
| 6 |
+
# C extensions
|
| 7 |
+
*.so
|
| 8 |
+
|
| 9 |
+
# Distribution / packaging
|
| 10 |
+
.Python
|
| 11 |
+
build/
|
| 12 |
+
develop-eggs/
|
| 13 |
+
dist/
|
| 14 |
+
downloads/
|
| 15 |
+
eggs/
|
| 16 |
+
.eggs/
|
| 17 |
+
lib/
|
| 18 |
+
lib64/
|
| 19 |
+
parts/
|
| 20 |
+
sdist/
|
| 21 |
+
var/
|
| 22 |
+
wheels/
|
| 23 |
+
share/python-wheels/
|
| 24 |
+
*.egg-info/
|
| 25 |
+
.installed.cfg
|
| 26 |
+
*.egg
|
| 27 |
+
MANIFEST
|
| 28 |
+
|
| 29 |
+
# PyInstaller
|
| 30 |
+
# Usually these files are written by a python script from a template
|
| 31 |
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
| 32 |
+
*.manifest
|
| 33 |
+
*.spec
|
| 34 |
+
|
| 35 |
+
# Installer logs
|
| 36 |
+
pip-log.txt
|
| 37 |
+
pip-delete-this-directory.txt
|
| 38 |
+
|
| 39 |
+
# Unit test / coverage reports
|
| 40 |
+
htmlcov/
|
| 41 |
+
.tox/
|
| 42 |
+
.nox/
|
| 43 |
+
.coverage
|
| 44 |
+
.coverage.*
|
| 45 |
+
.cache
|
| 46 |
+
nosetests.xml
|
| 47 |
+
coverage.xml
|
| 48 |
+
*.cover
|
| 49 |
+
*.py,cover
|
| 50 |
+
.hypothesis/
|
| 51 |
+
.pytest_cache/
|
| 52 |
+
cover/
|
| 53 |
+
|
| 54 |
+
# Translations
|
| 55 |
+
*.mo
|
| 56 |
+
*.pot
|
| 57 |
+
|
| 58 |
+
# Django stuff:
|
| 59 |
+
*.log
|
| 60 |
+
local_settings.py
|
| 61 |
+
db.sqlite3
|
| 62 |
+
db.sqlite3-journal
|
| 63 |
+
|
| 64 |
+
# Flask stuff:
|
| 65 |
+
instance/
|
| 66 |
+
.webassets-cache
|
| 67 |
+
|
| 68 |
+
# Scrapy stuff:
|
| 69 |
+
.scrapy
|
| 70 |
+
|
| 71 |
+
# Sphinx documentation
|
| 72 |
+
docs/_build/
|
| 73 |
+
|
| 74 |
+
# PyBuilder
|
| 75 |
+
.pybuilder/
|
| 76 |
+
target/
|
| 77 |
+
|
| 78 |
+
# Jupyter Notebook
|
| 79 |
+
.ipynb_checkpoints
|
| 80 |
+
|
| 81 |
+
# IPython
|
| 82 |
+
profile_default/
|
| 83 |
+
ipython_config.py
|
| 84 |
+
|
| 85 |
+
# pyenv
|
| 86 |
+
# For a library or package, you might want to ignore these files since the code is
|
| 87 |
+
# intended to run in multiple environments; otherwise, check them in:
|
| 88 |
+
# .python-version
|
| 89 |
+
|
| 90 |
+
# pipenv
|
| 91 |
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
| 92 |
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
| 93 |
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
| 94 |
+
# install all needed dependencies.
|
| 95 |
+
#Pipfile.lock
|
| 96 |
+
|
| 97 |
+
# UV
|
| 98 |
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
| 99 |
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
| 100 |
+
# commonly ignored for libraries.
|
| 101 |
+
#uv.lock
|
| 102 |
+
|
| 103 |
+
# poetry
|
| 104 |
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
| 105 |
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
| 106 |
+
# commonly ignored for libraries.
|
| 107 |
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
| 108 |
+
#poetry.lock
|
| 109 |
+
|
| 110 |
+
# pdm
|
| 111 |
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
| 112 |
+
#pdm.lock
|
| 113 |
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
| 114 |
+
# in version control.
|
| 115 |
+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
| 116 |
+
.pdm.toml
|
| 117 |
+
.pdm-python
|
| 118 |
+
.pdm-build/
|
| 119 |
+
|
| 120 |
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
| 121 |
+
__pypackages__/
|
| 122 |
+
|
| 123 |
+
# Celery stuff
|
| 124 |
+
celerybeat-schedule
|
| 125 |
+
celerybeat.pid
|
| 126 |
+
|
| 127 |
+
# SageMath parsed files
|
| 128 |
+
*.sage.py
|
| 129 |
+
|
| 130 |
+
# Environments
|
| 131 |
+
.env
|
| 132 |
+
.venv
|
| 133 |
+
env/
|
| 134 |
+
venv/
|
| 135 |
+
ENV/
|
| 136 |
+
env.bak/
|
| 137 |
+
venv.bak/
|
| 138 |
+
|
| 139 |
+
# Spyder project settings
|
| 140 |
+
.spyderproject
|
| 141 |
+
.spyproject
|
| 142 |
+
|
| 143 |
+
# Rope project settings
|
| 144 |
+
.ropeproject
|
| 145 |
+
|
| 146 |
+
# mkdocs documentation
|
| 147 |
+
/site
|
| 148 |
+
|
| 149 |
+
# mypy
|
| 150 |
+
.mypy_cache/
|
| 151 |
+
.dmypy.json
|
| 152 |
+
dmypy.json
|
| 153 |
+
|
| 154 |
+
# Pyre type checker
|
| 155 |
+
.pyre/
|
| 156 |
+
|
| 157 |
+
# pytype static type analyzer
|
| 158 |
+
.pytype/
|
| 159 |
+
|
| 160 |
+
# Cython debug symbols
|
| 161 |
+
cython_debug/
|
| 162 |
+
|
| 163 |
+
# PyCharm
|
| 164 |
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
| 165 |
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
| 166 |
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
| 167 |
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
| 168 |
+
#.idea/
|
| 169 |
+
|
| 170 |
+
# Abstra
|
| 171 |
+
# Abstra is an AI-powered process automation framework.
|
| 172 |
+
# Ignore directories containing user credentials, local state, and settings.
|
| 173 |
+
# Learn more at https://abstra.io/docs
|
| 174 |
+
.abstra/
|
| 175 |
+
|
| 176 |
+
# Visual Studio Code
|
| 177 |
+
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
|
| 178 |
+
# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
|
| 179 |
+
# and can be added to the global gitignore or merged into this file. However, if you prefer,
|
| 180 |
+
# you could uncomment the following to ignore the enitre vscode folder
|
| 181 |
+
# .vscode/
|
| 182 |
+
|
| 183 |
+
# Ruff stuff:
|
| 184 |
+
.ruff_cache/
|
| 185 |
+
|
| 186 |
+
# PyPI configuration file
|
| 187 |
+
.pypirc
|
| 188 |
+
|
| 189 |
+
# Cursor
|
| 190 |
+
# Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
|
| 191 |
+
# exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
|
| 192 |
+
# refer to https://docs.cursor.com/context/ignore-files
|
| 193 |
+
.cursorignore
|
| 194 |
+
.cursorindexingignore
|
| 195 |
+
|
| 196 |
+
.gradio/
|
README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
| 1 |
---
|
| 2 |
title: SemanticMap
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom:
|
| 5 |
-
colorTo:
|
| 6 |
sdk: gradio
|
| 7 |
sdk_version: 5.44.1
|
| 8 |
app_file: app.py
|
|
|
|
| 1 |
---
|
| 2 |
title: SemanticMap
|
| 3 |
+
emoji: 📚
|
| 4 |
+
colorFrom: gray
|
| 5 |
+
colorTo: pink
|
| 6 |
sdk: gradio
|
| 7 |
sdk_version: 5.44.1
|
| 8 |
app_file: app.py
|
app.py
ADDED
|
@@ -0,0 +1,512 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import csv
|
| 3 |
+
import json
|
| 4 |
+
import random
|
| 5 |
+
import base64
|
| 6 |
+
import mimetypes
|
| 7 |
+
from typing import Any
|
| 8 |
+
from pathlib import Path
|
| 9 |
+
from dotenv import load_dotenv
|
| 10 |
+
|
| 11 |
+
import requests
|
| 12 |
+
import gradio as gr
|
| 13 |
+
from openai import OpenAI
|
| 14 |
+
from country_list import countries_for_language
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
def load_scenarios() -> list[str]:
|
| 18 |
+
"""Load scenarios from a CSV file.
|
| 19 |
+
|
| 20 |
+
Returns:
|
| 21 |
+
list[str]: List of scenario descriptions.
|
| 22 |
+
"""
|
| 23 |
+
# load scenarios from CSV file
|
| 24 |
+
with open(Path(__file__).parent / "static" / "scenarios.csv", "r") as f:
|
| 25 |
+
reader = csv.reader(f)
|
| 26 |
+
_ = next(reader)
|
| 27 |
+
scenarios = [row[1] for row in reader if row]
|
| 28 |
+
return scenarios
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
def fetch_user_scenarios(username: str) -> list[int] | None:
|
| 32 |
+
"""Fetches the list of scenarios for a given user from the sheet.
|
| 33 |
+
|
| 34 |
+
Args:
|
| 35 |
+
username (str): Username.
|
| 36 |
+
|
| 37 |
+
Returns:
|
| 38 |
+
list[int] | None: List of scenario indices for the user, or None.
|
| 39 |
+
"""
|
| 40 |
+
try:
|
| 41 |
+
response = requests.get(os.getenv("PROGRESS_ENDPOINT_URL", ""), params={"user": username})
|
| 42 |
+
response.raise_for_status()
|
| 43 |
+
data = response.json()
|
| 44 |
+
|
| 45 |
+
if data.get("result") == "success":
|
| 46 |
+
return data.get("scenarios", [])
|
| 47 |
+
else:
|
| 48 |
+
print(f"Error fetching user data server: {data.get('error')}")
|
| 49 |
+
return None
|
| 50 |
+
|
| 51 |
+
except Exception as e:
|
| 52 |
+
print(f"Request failed: {e}")
|
| 53 |
+
return None
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
def load_user(request: gr.Request) -> tuple[str, list[int]]:
|
| 57 |
+
"""Load the user and their scenarios.
|
| 58 |
+
|
| 59 |
+
Args:
|
| 60 |
+
request (gr.Request): Gradio request object containing the username.
|
| 61 |
+
Returns:
|
| 62 |
+
tuple[str, list[int]]: Tuple containing the username and their scenarios.
|
| 63 |
+
"""
|
| 64 |
+
username = request.username
|
| 65 |
+
user_scenarios = fetch_user_scenarios(username)
|
| 66 |
+
return (username, user_scenarios)
|
| 67 |
+
|
| 68 |
+
|
| 69 |
+
def init_interface(
|
| 70 |
+
username: str, user_scenarios: list[int]
|
| 71 |
+
) -> tuple[dict[str, Any], str, dict[str, Any], str, int, str, str]:
|
| 72 |
+
"""Initialize the Gradio interface with the welcome message and scenario.
|
| 73 |
+
|
| 74 |
+
Args:
|
| 75 |
+
username (str): The username of the user.
|
| 76 |
+
user_scenarios (list[int]): List of scenario indices the user has completed.
|
| 77 |
+
|
| 78 |
+
Returns:
|
| 79 |
+
tuple: Gradio updates for the interface components.
|
| 80 |
+
- loader_ui: Update to hide the loading UI.
|
| 81 |
+
- status: Update to show the loader message.
|
| 82 |
+
- main_ui: Update to show the main UI.
|
| 83 |
+
- welcome_text: Welcome message for the user.
|
| 84 |
+
- scenario_idx: Randomly selected scenario index.
|
| 85 |
+
- scenario_text: The scenario text for the user to act out.
|
| 86 |
+
- progress_bar: Visual progress bar showing completed scenarios.
|
| 87 |
+
"""
|
| 88 |
+
welcome_msg = f"""## 👋 Welcome {username}! Please follow these steps to contribute to our dataset:
|
| 89 |
+
|
| 90 |
+
1. **Understand the Scenario**: Carefully read the scenario provided. This describes the situation you need to act out.
|
| 91 |
+
|
| 92 |
+
2. **Perform on Google Maps**: Imagine you're using Google Maps' voice search. How would you describe the scenario to Google Maps?
|
| 93 |
+
|
| 94 |
+
3. **Capture the Screenshot**: After your voice input, take a screenshot of the Google Maps results page. This should clearly show the output of your query.
|
| 95 |
+
|
| 96 |
+
4. **Record Your Audio**: Separately, record your voice as you speak the scenario again.
|
| 97 |
+
|
| 98 |
+
5. **Transcribe**: Provide a transcript of what you said.
|
| 99 |
+
|
| 100 |
+
6. **Provide Country Information**: Specify your country of origin.
|
| 101 |
+
|
| 102 |
+
"""
|
| 103 |
+
# load all scenarios and filter out those already completed by the user
|
| 104 |
+
all_scenarios = load_scenarios()
|
| 105 |
+
|
| 106 |
+
# handle case where user has completed all scenarios
|
| 107 |
+
if len(user_scenarios) >= len(all_scenarios):
|
| 108 |
+
complete_msg = (
|
| 109 |
+
f"🎉 Congratulations {username}! You have completed all scenarios. Thank you for your contributions!"
|
| 110 |
+
)
|
| 111 |
+
return (
|
| 112 |
+
gr.update(visible=True),
|
| 113 |
+
complete_msg,
|
| 114 |
+
gr.update(visible=False),
|
| 115 |
+
None,
|
| 116 |
+
None,
|
| 117 |
+
None,
|
| 118 |
+
None,
|
| 119 |
+
)
|
| 120 |
+
|
| 121 |
+
# select random scenario that the user has not completed
|
| 122 |
+
scenario_idx = None
|
| 123 |
+
while scenario_idx is None or scenario_idx in user_scenarios:
|
| 124 |
+
scenario_idx = random.randint(0, len(all_scenarios) - 1)
|
| 125 |
+
|
| 126 |
+
scenario_text = all_scenarios[scenario_idx]
|
| 127 |
+
print(f"Selected scenario {scenario_idx}: {scenario_text}")
|
| 128 |
+
|
| 129 |
+
# give visual progress bar
|
| 130 |
+
def make_progress_bar(done: int, total: int) -> str:
|
| 131 |
+
percent = done / total * 100 if total > 0 else 0
|
| 132 |
+
return f"""
|
| 133 |
+
<div style="width: 100%; border: 1px solid white; border-radius: 8px; padding: 8px;">
|
| 134 |
+
<div style="text-align: center; margin-bottom: 4px; font-weight: bold;">
|
| 135 |
+
{int(percent)}% ({done}/{total} scenarios completed)
|
| 136 |
+
</div>
|
| 137 |
+
<div style="width: 100%; background-color: #eee; border-radius: 5px; overflow: hidden;">
|
| 138 |
+
<div style="width: {percent}%; background-color: #4CAF50; height: 20px;"></div>
|
| 139 |
+
</div>
|
| 140 |
+
</div>
|
| 141 |
+
"""
|
| 142 |
+
|
| 143 |
+
progress_bar = make_progress_bar(len(user_scenarios), len(all_scenarios))
|
| 144 |
+
|
| 145 |
+
return (
|
| 146 |
+
gr.update(visible=False),
|
| 147 |
+
None,
|
| 148 |
+
gr.update(visible=True),
|
| 149 |
+
welcome_msg,
|
| 150 |
+
scenario_idx,
|
| 151 |
+
scenario_text,
|
| 152 |
+
progress_bar,
|
| 153 |
+
)
|
| 154 |
+
|
| 155 |
+
|
| 156 |
+
def validate_inputs(
|
| 157 |
+
audio: str,
|
| 158 |
+
transcript: str,
|
| 159 |
+
country: str,
|
| 160 |
+
image: str,
|
| 161 |
+
expected: str,
|
| 162 |
+
satisfiable: str,
|
| 163 |
+
actual: str | None = None,
|
| 164 |
+
postcode: str | None = None,
|
| 165 |
+
) -> tuple[bool, str]:
|
| 166 |
+
"""Validate the inputs provided by the user.
|
| 167 |
+
|
| 168 |
+
Args:
|
| 169 |
+
audio (str): Path to the audio file.
|
| 170 |
+
transcript (str): Transcription of the audio.
|
| 171 |
+
country (str): Country of origin of the user.
|
| 172 |
+
image (str): Path to the image file.
|
| 173 |
+
expected (str): Expected output from Google Maps.
|
| 174 |
+
satisfiable (str): Whether the Google Maps results satisfied the query.
|
| 175 |
+
actual (str | None, optional): Actual output from Google Maps, if applicable. Defaults to None.
|
| 176 |
+
postcode (str | None, optional): Australian postcode, if provided. Defaults to None.
|
| 177 |
+
|
| 178 |
+
Returns:
|
| 179 |
+
tuple[bool, str]: A tuple containing a boolean indicating success or failure, and a message.
|
| 180 |
+
"""
|
| 181 |
+
errors = []
|
| 182 |
+
|
| 183 |
+
if not audio:
|
| 184 |
+
errors.append("audio")
|
| 185 |
+
if not transcript.strip():
|
| 186 |
+
errors.append("transcript")
|
| 187 |
+
if not country:
|
| 188 |
+
errors.append("country")
|
| 189 |
+
if not image:
|
| 190 |
+
errors.append("image")
|
| 191 |
+
if not expected.strip():
|
| 192 |
+
errors.append("expected output")
|
| 193 |
+
if not satisfiable:
|
| 194 |
+
errors.append("satisfiability")
|
| 195 |
+
if satisfiable == "No" and not actual.strip():
|
| 196 |
+
errors.append("actual output")
|
| 197 |
+
if postcode:
|
| 198 |
+
if not postcode.isdigit() or len(postcode) != 4:
|
| 199 |
+
errors.append("postcode (must be a 4-digit number)")
|
| 200 |
+
elif not (200 <= int(postcode) <= 7999):
|
| 201 |
+
errors.append("postcode (must be a valid Australian postcode between 200 and 7999)")
|
| 202 |
+
|
| 203 |
+
if errors:
|
| 204 |
+
return False, f"❌ Submission failed. Missing: {', '.join(errors)}"
|
| 205 |
+
else:
|
| 206 |
+
return True, "✅ Submission successful! Thank you for your contribution."
|
| 207 |
+
|
| 208 |
+
|
| 209 |
+
def encode_file_as_json(path: str, name_override: str = None) -> dict | None:
|
| 210 |
+
"""Encode a file as a base64 JSON object.
|
| 211 |
+
|
| 212 |
+
Args:
|
| 213 |
+
path (str): Path to the file to encode.
|
| 214 |
+
name_override (str, optional): Filename to override, as temporary audio files default to `test.wav`. Defaults to None.
|
| 215 |
+
|
| 216 |
+
Returns:
|
| 217 |
+
dict | None: A dictionary containing the base64 encoded file, its MIME type, and its name, or None if the file does not exist.
|
| 218 |
+
"""
|
| 219 |
+
if path and os.path.exists(path):
|
| 220 |
+
with open(path, "rb") as f:
|
| 221 |
+
file_bytes = f.read()
|
| 222 |
+
base64_str = base64.b64encode(file_bytes).decode("utf-8")
|
| 223 |
+
mime_type, _ = mimetypes.guess_type(path)
|
| 224 |
+
return {
|
| 225 |
+
"base64": base64_str,
|
| 226 |
+
"type": mime_type or "application/octet-stream",
|
| 227 |
+
"name": name_override or os.path.basename(path),
|
| 228 |
+
}
|
| 229 |
+
return None
|
| 230 |
+
|
| 231 |
+
|
| 232 |
+
def upload_response(
|
| 233 |
+
username: str,
|
| 234 |
+
scenario_idx: int,
|
| 235 |
+
scenario_text: str,
|
| 236 |
+
audio_path: str,
|
| 237 |
+
transcript: str,
|
| 238 |
+
country: str,
|
| 239 |
+
image_path: str,
|
| 240 |
+
expected: str,
|
| 241 |
+
satisfiable: str,
|
| 242 |
+
actual: str | None = None,
|
| 243 |
+
postcode: str | None = None,
|
| 244 |
+
) -> dict:
|
| 245 |
+
"""Upload the user's response to the server.
|
| 246 |
+
|
| 247 |
+
Args:
|
| 248 |
+
username (str): Username of the user.
|
| 249 |
+
scenario_idx (int): Index of the scenario.
|
| 250 |
+
scenario_text (str): Text of the scenario.
|
| 251 |
+
audio_path (str): Path to the audio file.
|
| 252 |
+
transcript (str): Transcript of the audio.
|
| 253 |
+
country (str): Country of origin of the user.
|
| 254 |
+
image_path (str): Path to the image file.
|
| 255 |
+
expected (str): Expected output from Google Maps.
|
| 256 |
+
satisfiable (str): Whether the Google Maps results satisfied the query.
|
| 257 |
+
actual (str | None, optional): Actual output from Google Maps, if applicable. Defaults to None.
|
| 258 |
+
postcode (str | None, optional): Australian postcode, if provided. Defaults to None.
|
| 259 |
+
|
| 260 |
+
Returns:
|
| 261 |
+
dict: Response from the server indicating success or failure.
|
| 262 |
+
"""
|
| 263 |
+
image_obj = encode_file_as_json(image_path)
|
| 264 |
+
audio_obj = encode_file_as_json(audio_path, name_override=f"{username}_scenario_{scenario_idx}.wav")
|
| 265 |
+
|
| 266 |
+
payload = {
|
| 267 |
+
"username": username,
|
| 268 |
+
"scenario_idx": scenario_idx,
|
| 269 |
+
"scenario_text": scenario_text,
|
| 270 |
+
"audio_url": json.dumps(audio_obj),
|
| 271 |
+
"transcript": transcript,
|
| 272 |
+
"country": country,
|
| 273 |
+
"screenshot_url": json.dumps(image_obj),
|
| 274 |
+
"expected": expected,
|
| 275 |
+
"satisfiable": satisfiable,
|
| 276 |
+
"actual": actual,
|
| 277 |
+
"postcode": postcode,
|
| 278 |
+
}
|
| 279 |
+
|
| 280 |
+
try:
|
| 281 |
+
response = requests.post(os.getenv("UPLOAD_ENDPOINT_URL", ""), data=payload)
|
| 282 |
+
response.raise_for_status()
|
| 283 |
+
return response.json()
|
| 284 |
+
except requests.RequestException as e:
|
| 285 |
+
return {"result": "error", "error": str(e)}
|
| 286 |
+
|
| 287 |
+
|
| 288 |
+
def handle_submission(
|
| 289 |
+
username: str,
|
| 290 |
+
scenario_idx: int,
|
| 291 |
+
scenario_text: str,
|
| 292 |
+
audio_path: str,
|
| 293 |
+
transcript: str,
|
| 294 |
+
country: str,
|
| 295 |
+
image_path: str,
|
| 296 |
+
expected: str,
|
| 297 |
+
satisfiable: str,
|
| 298 |
+
user_scenarios: list[int],
|
| 299 |
+
actual: str | None = None,
|
| 300 |
+
postcode: str | None = None,
|
| 301 |
+
) -> list[int]:
|
| 302 |
+
"""Handle the submission of user data.
|
| 303 |
+
|
| 304 |
+
Args:
|
| 305 |
+
username (str): Username of the user.
|
| 306 |
+
scenario_idx (int): Index of the scenario.
|
| 307 |
+
scenario_text (str): Text of the scenario.
|
| 308 |
+
audio_path (str): Path to the audio file.
|
| 309 |
+
transcript (str): Transcript of the audio.
|
| 310 |
+
country (str): Country of origin of the user.
|
| 311 |
+
image_path (str): Path to the image file.
|
| 312 |
+
expected (str): Expected output from Google Maps.
|
| 313 |
+
satisfiable (str): Whether the Google Maps results satisfied the query.
|
| 314 |
+
user_scenarios (list[int]): List of scenario indices the user has completed.
|
| 315 |
+
actual (str | None, optional): Actual output from Google Maps, if applicable. Defaults to None.
|
| 316 |
+
postcode (str | None, optional): Australian postcode, if provided. Defaults to None.
|
| 317 |
+
|
| 318 |
+
Returns:
|
| 319 |
+
list[int]: Updated list of scenario indices the user has completed.
|
| 320 |
+
"""
|
| 321 |
+
valid, msg = validate_inputs(audio_path, transcript, country, image_path, expected, satisfiable, actual, postcode)
|
| 322 |
+
if not valid:
|
| 323 |
+
gr.Warning(msg)
|
| 324 |
+
return
|
| 325 |
+
|
| 326 |
+
response = upload_response(
|
| 327 |
+
username,
|
| 328 |
+
scenario_idx,
|
| 329 |
+
scenario_text,
|
| 330 |
+
audio_path,
|
| 331 |
+
transcript,
|
| 332 |
+
country,
|
| 333 |
+
image_path,
|
| 334 |
+
expected,
|
| 335 |
+
satisfiable,
|
| 336 |
+
actual,
|
| 337 |
+
postcode,
|
| 338 |
+
)
|
| 339 |
+
print(response)
|
| 340 |
+
if response.get("result") == "success":
|
| 341 |
+
user_scenarios.append(scenario_idx)
|
| 342 |
+
gr.Info(msg)
|
| 343 |
+
|
| 344 |
+
return user_scenarios
|
| 345 |
+
|
| 346 |
+
|
| 347 |
+
def transcribe_audio(audio_path: str) -> str | None:
|
| 348 |
+
"""Transcribe the audio file using OpenAI's Whisper model.
|
| 349 |
+
|
| 350 |
+
Args:
|
| 351 |
+
audio_path (str): Path to the audio file.
|
| 352 |
+
|
| 353 |
+
Returns:
|
| 354 |
+
str | None: Transcription of the audio, or None if an error occurs.
|
| 355 |
+
"""
|
| 356 |
+
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
|
| 357 |
+
if not audio_path or not os.path.exists(audio_path):
|
| 358 |
+
return None
|
| 359 |
+
|
| 360 |
+
audio_bytes = open(audio_path, "rb")
|
| 361 |
+
try:
|
| 362 |
+
response = client.audio.transcriptions.create(model="whisper-1", file=audio_bytes, language="en")
|
| 363 |
+
transcription = getattr(response, "text", "")
|
| 364 |
+
return transcription.strip()
|
| 365 |
+
except Exception as e:
|
| 366 |
+
print(f"Error during transcription: {e}")
|
| 367 |
+
return None
|
| 368 |
+
|
| 369 |
+
|
| 370 |
+
if __name__ == "__main__":
|
| 371 |
+
load_dotenv()
|
| 372 |
+
|
| 373 |
+
with gr.Blocks() as demo:
|
| 374 |
+
username = gr.State()
|
| 375 |
+
user_scenarios = gr.State([])
|
| 376 |
+
|
| 377 |
+
with gr.Row() as loader_ui:
|
| 378 |
+
status = gr.Image(
|
| 379 |
+
value=Path(__file__).parent / "static" / "loading.gif",
|
| 380 |
+
show_label=False,
|
| 381 |
+
interactive=False,
|
| 382 |
+
height=50,
|
| 383 |
+
show_download_button=False,
|
| 384 |
+
)
|
| 385 |
+
|
| 386 |
+
with gr.Column(visible=False) as main_ui:
|
| 387 |
+
gr.Markdown(f"# 🗺️ SemanticMap Annotation Dashboard")
|
| 388 |
+
welcome_text = gr.Markdown()
|
| 389 |
+
progress_display = gr.HTML()
|
| 390 |
+
|
| 391 |
+
with gr.Row():
|
| 392 |
+
scenario_idx_input = gr.Textbox(value=None, visible=False)
|
| 393 |
+
scenario_input = gr.Textbox(
|
| 394 |
+
label="Scenario",
|
| 395 |
+
value=None,
|
| 396 |
+
interactive=False,
|
| 397 |
+
info="Read this scenario. How would you describe it to Google Maps?",
|
| 398 |
+
max_lines=6,
|
| 399 |
+
)
|
| 400 |
+
|
| 401 |
+
with gr.Row(visible=False) as upload_ui:
|
| 402 |
+
upload_status = gr.Image(
|
| 403 |
+
value=Path(__file__).parent / "static" / "loading.gif",
|
| 404 |
+
show_label=False,
|
| 405 |
+
interactive=False,
|
| 406 |
+
height=50,
|
| 407 |
+
show_download_button=False,
|
| 408 |
+
)
|
| 409 |
+
|
| 410 |
+
with gr.Row() as form_ui:
|
| 411 |
+
with gr.Column():
|
| 412 |
+
audio_input = gr.Audio(type="filepath", label="Audio Upload (User Recording)")
|
| 413 |
+
transcript_input = gr.Textbox(
|
| 414 |
+
label="Transcript",
|
| 415 |
+
placeholder="Enter the transcript here...",
|
| 416 |
+
info="What did you say in the audio recording?",
|
| 417 |
+
)
|
| 418 |
+
country_select = gr.Dropdown(
|
| 419 |
+
label="Country of Origin",
|
| 420 |
+
info="Where are you from: Please select the country of origin that you identify with.",
|
| 421 |
+
choices=sorted([name for _, name in countries_for_language("en")]),
|
| 422 |
+
value=None,
|
| 423 |
+
interactive=True,
|
| 424 |
+
)
|
| 425 |
+
postcode_input = gr.Textbox(
|
| 426 |
+
label="Australian Postcode (Optional)",
|
| 427 |
+
placeholder="Enter your postcode (optional)",
|
| 428 |
+
info="If you want to provide your postcode, please enter it here. This is optional.",
|
| 429 |
+
)
|
| 430 |
+
|
| 431 |
+
# transcribe audio after upload
|
| 432 |
+
audio_input.input(fn=transcribe_audio, inputs=audio_input, outputs=transcript_input)
|
| 433 |
+
|
| 434 |
+
with gr.Column():
|
| 435 |
+
image_input = gr.Image(type="filepath", label="Image Upload (Google Maps Screenshot)", height=600)
|
| 436 |
+
expected_output = gr.Textbox(label="What did you expect Google Maps to return?")
|
| 437 |
+
satisfiable_radio = gr.Radio(
|
| 438 |
+
label="Did the Google Maps results satisfy your query?",
|
| 439 |
+
choices=["Yes", "No"],
|
| 440 |
+
)
|
| 441 |
+
actual_output = gr.Textbox(
|
| 442 |
+
label="What did Google Maps return instead?", visible=False, interactive=True
|
| 443 |
+
)
|
| 444 |
+
satisfiable_radio.change(
|
| 445 |
+
fn=lambda x: gr.update(visible=(x == "No")),
|
| 446 |
+
inputs=satisfiable_radio,
|
| 447 |
+
outputs=actual_output,
|
| 448 |
+
)
|
| 449 |
+
|
| 450 |
+
submit_button = gr.Button("Submit Data")
|
| 451 |
+
|
| 452 |
+
submit_button.click(
|
| 453 |
+
# on submit, show the upload status UI and hide the main UI and submit button
|
| 454 |
+
fn=lambda: (gr.update(visible=True), gr.update(visible=False), gr.update(visible=False)),
|
| 455 |
+
outputs=[upload_ui, form_ui, submit_button],
|
| 456 |
+
).then(
|
| 457 |
+
# then handle the submission
|
| 458 |
+
fn=handle_submission,
|
| 459 |
+
inputs=[
|
| 460 |
+
username,
|
| 461 |
+
scenario_idx_input,
|
| 462 |
+
scenario_input,
|
| 463 |
+
audio_input,
|
| 464 |
+
transcript_input,
|
| 465 |
+
country_select,
|
| 466 |
+
image_input,
|
| 467 |
+
expected_output,
|
| 468 |
+
satisfiable_radio,
|
| 469 |
+
user_scenarios,
|
| 470 |
+
actual_output,
|
| 471 |
+
postcode_input,
|
| 472 |
+
],
|
| 473 |
+
outputs=[user_scenarios],
|
| 474 |
+
).then(
|
| 475 |
+
# then reload the user scenario data, fetching latest progress
|
| 476 |
+
init_interface,
|
| 477 |
+
inputs=[username, user_scenarios],
|
| 478 |
+
outputs=[
|
| 479 |
+
loader_ui,
|
| 480 |
+
status,
|
| 481 |
+
main_ui,
|
| 482 |
+
welcome_text,
|
| 483 |
+
scenario_idx_input,
|
| 484 |
+
scenario_input,
|
| 485 |
+
progress_display,
|
| 486 |
+
],
|
| 487 |
+
).then(
|
| 488 |
+
# then, clear form components except for the country select
|
| 489 |
+
fn=lambda: (
|
| 490 |
+
gr.update(value=None),
|
| 491 |
+
gr.update(value=None),
|
| 492 |
+
gr.update(value=None),
|
| 493 |
+
gr.update(value=None),
|
| 494 |
+
gr.update(value=None),
|
| 495 |
+
gr.update(value=None),
|
| 496 |
+
),
|
| 497 |
+
outputs=[audio_input, transcript_input, image_input, expected_output, satisfiable_radio, actual_output],
|
| 498 |
+
).then(
|
| 499 |
+
# then hide the upload UI and show the main UI and submit button again
|
| 500 |
+
fn=lambda: (gr.update(visible=False), gr.update(visible=True), gr.update(visible=True)),
|
| 501 |
+
outputs=[upload_ui, form_ui, submit_button],
|
| 502 |
+
)
|
| 503 |
+
|
| 504 |
+
demo.load(load_user, None, outputs=[username, user_scenarios]).then(
|
| 505 |
+
init_interface,
|
| 506 |
+
inputs=[username, user_scenarios],
|
| 507 |
+
outputs=[loader_ui, status, main_ui, welcome_text, scenario_idx_input, scenario_input, progress_display],
|
| 508 |
+
)
|
| 509 |
+
|
| 510 |
+
users = os.getenv("USERS", "").split(",")
|
| 511 |
+
passwords = os.getenv("PASSWORD", "").split(",")
|
| 512 |
+
demo.launch(auth=list(zip(users, passwords)), ssr_mode=False)
|
requirements.txt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
gradio==5.38.2
|
| 2 |
+
country_list==1.1.0
|
| 3 |
+
openai==1.61.0
|
static/loading.gif
ADDED
|
static/scenarios.csv
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
query,scenario
|
| 2 |
+
"Show me a Biergarten, please",You are looking for a place to enjoy beer in your area.
|
| 3 |
+
"Find a Biergarten in Olt County. It is 33 feet from a parking space. There is a chash machine 51,34 yards away. ","You are looking for a place to drink beer in your area, that has a parking space within 10 meters from the location, and a cash machine/ATM nearby."
|
| 4 |
+
"Show me all restaurants within 500 yards of a train station in Bretagne, France.",You are looking for all dining establishments within 500 yards of a transportation hub in your area.
|
| 5 |
+
"Show me all caffes within 400 yyards of a police station in Shatoy, Chechen Republic, Russia. There should be a public trash can in front of the police station.",You are looking for all cafes within 400 yards of a law enforcement facility in your area. There should be a public trash can located in front of the law enforcement facility.
|
| 6 |
+
Please show me a nice overview map of all planetariums you are aware of.,You are looking for a nice overview map of all planetariums in your area.
|
| 7 |
+
"I have a specific request regarding Praderas del Potrero. I want to find all music venues, community centers, and bars where the community center contains both the music venue and the bar. Please mark the results on the map.","You are looking for all music venues, community centers, and bars in your area, where the community center includes both the music venue and the bar. Please mark the results on the map."
|
| 8 |
+
"Focus on Arch, Swizerland. Find a restaurant within 1.5km of a buss station. Restaurant have should a public toilet inside.",You are looking for a restaurant in your area that is located within 1.5 kilometers of a bus station and has a public toilet available for customers.
|
| 9 |
+
I looking for place where having a elementary schools containing a library and driving school next door.,You are looking for an educational facility in your area that includes a library and has a driving school located next to it.
|
| 10 |
+
"I am looking for a daycare within 5 miles of a zoo in Wilkinson County, Mississippi, United States.",You are looking for a daycare center within 5 miles of an animal park in your area.
|
| 11 |
+
"I look for a restaurant in Makkah, Saudi Arabia. I would like the restaurant to be either an မက်ဒေါ်နယ် or an ဘာဂါကင်း.","You are looking for a restaurant in your city, specifically a fast food establishment that serves burgers or a well-known global fast food chain."
|
| 12 |
+
I am look for a motel that are only 1 kilometer away from a swimming pool.,You are looking for a place to stay overnight that is located within 1 kilometer of a recreational facility where you can swim.
|
| 13 |
+
"Please find me a museum that is only 500 yards away from a motel in Barciany, Warmian-Masurian Voivodeship, Poland.",You are looking for a museum in your area that is located within 500 yards of a motel.
|
| 14 |
+
I ma lookign for a clothing store in ស្មរ៉ុមណេដ្រេ តំបន់រាជធានីនៃប្រទេសដាណឺម៉ាក ? The cloting store should be a H&M.,"You are looking for a clothing store in your city, specifically a popular brand outlet, that is easily accessible."
|
| 15 |
+
"Go and locate a lighthouse in the dunes in Hesse, with a beach not more than 160m away from the lighthouse.","You are looking for a lighthouse located in a sandy area, with a beach that is no more than 160 meters away from the lighthouse."
|
| 16 |
+
"Go to Powiat kolski, Poland fnd wastewatr plant",You are looking for a wastewater treatment facility in your area.
|
| 17 |
+
"Find all antiquities shops in Ash Shuhadā’, Monufia, Egypt",You are looking for antiquities shops in your area.
|
| 18 |
+
"Show me aparks that contain a football field with a fountaine not more than 12.4 yards away from it in Munich, Bavaria.","You are looking for parks in your area that have a football field, with a fountain located no more than 12.4 yards away from it."
|
| 19 |
+
Please find me all music venues in close distance to an artwork in Bay Harbor. The music venue is less than 0.5 miles away from a library.,"You are looking for music venues in your area that are located within a short distance from a piece of artwork, and these venues should be less than 0.5 miles away from a library."
|
| 20 |
+
"Find me forestry offices in Buzău County, Romania",You are looking for forestry offices in your region.
|
| 21 |
+
"Please find me all elmentary schools with religous focus on sinto in Milverton, Unitde Kingdom. The elementary schools should be precisly 1 kilometer away from a roundabout. The round-about should have an accessible parking space and should be locayted at exactly 10 m from the clustre house.","You are looking for elementary schools with a religious focus in your area, specifically on a certain belief system. These schools should be located precisely 1 kilometer away from a roundabout. The roundabout must have an accessible parking space and should be situated exactly 10 meters from a community center."
|
| 22 |
+
Search for all embankments in Ryazan Oblast.,You are looking for all types of embankments in your region.
|
| 23 |
+
"Please find me all motorcycle repair shops in Saitama Prefecture, Japan.",You are looking for motorcycle repair shops in your area.
|
| 24 |
+
"Please find me a bow shooting that is not no more than fifty-two thousand meters from a bowling green in Antônio Prado, Brazil.","You are looking for a place to practice archery that is no more than 52,000 meters from a bowling alley in your area."
|
| 25 |
+
Please find me all gambling dens that can be found in less than 0.5 miles from a vacant shop. The vacant shop is contained in a office building that has not more than 10 floors.,You are looking for gambling establishments located within half a mile of an empty retail space. The empty retail space is situated in a low-rise office building that has no more than 10 floors.
|
| 26 |
+
"I am searching for a an alcohol shop that is located within a refugee center in Jackson, South Carolina, United States.",You are looking for an alcohol shop that is located within a community support facility in your area.
|
| 27 |
+
"Find a christan church in City orf Norfolk, Virginia, United States. Its 500 yards form a firetower. The fire tower its less then 850 yards awy frm a housboat.","You are looking for a Christian church in your area that is located within 500 yards of a fire tower, which is itself less than 850 yards away from a houseboat."
|
| 28 |
+
Find a trench in Vrancea County.,You are looking for a trench in your area.
|
| 29 |
+
Lokup a gast station and a firehose within a 150m radius in בוואריה.,You are looking for a gas station and a firehouse within a 150-meter radius in your area.
|
| 30 |
+
I am trying to locate a houseboat that is anchored approximately 1km from a correctional facility. Inside the houseboat there is a gym. The gym is assigned the house number 21.,"You are trying to locate a floating accommodation that is anchored approximately 1km from a correctional institution. Inside the floating accommodation, there is a fitness center. The fitness center is designated with a specific identification number."
|
| 31 |
+
"Fnd socialfacility in Dâmbovița County, Romania. It has les than thre lvels. The name begnis wit ""ole"". There is a petrole station at 400metres from it. 300m away fom the station ist a fabric shop.","You are looking for a social facility in your area that has less than three levels and whose name begins with ""ole"". There is a petrol station located within 400 meters of the facility, and a fabric shop is situated 300 meters away from the petrol station."
|
| 32 |
+
Can you please help me locate a car rental shop in Lervik that is located no further from an embassy with a fire exit than 100 meters?,You are looking for a car rental shop in your area that is located no further than 100 meters from a government building with a fire exit.
|
| 33 |
+
"Find a give-way-sign anda space airport 60km aparrt from each other in Costestii din Vale, Dâmbovita Country, Romania",You are looking for a give-way sign and an airport that are 60 kilometers apart from each other in your area.
|
| 34 |
+
I'm looking for a lighthouse in a dune in Hesse. In a distance of more or less 160m from the lighthouse there is also a beach hut. Can you please find this spot for me.,"You are looking for a coastal landmark in a sandy area, that has a beach shelter within 200 meters from the landmark. Can you please find this spot for me?"
|
| 35 |
+
"Bay Harbor has a library, a music venue and an artwork. The artwork can be found in close distance to the music venue, which is in turn, no less than 0.5 miles away from the library. Can you please find the the location that fits this search?","You are looking for a location that has a library, a music venue, and an artwork. The artwork is located near the music venue, which is at least 0.5 miles away from the library. Can you please find the location that fits this search?"
|
| 36 |
+
Find me a Master Farma car shop with 2 floors. There is a bus stop next to the car shop. There is an aqueduct around 1.2 km from the car shop.,"You are looking for a car shop in your area that has two floors, with a bus stop located right next to it, and an aqueduct approximately 1.2 kilometers away."
|
| 37 |
+
"In Ban Hoang, Vietnam is a hostel within campsite by Nhà nghỉ & Glamping that I want to find.",You are looking for a hostel located within a campsite in your area that offers glamping options.
|
| 38 |
+
"I am searching for Giant bicycle store. It should be at most 5 km away from a florist. At the same time, it should be adjacent to an art store.","You are looking for a bicycle store in your area that is no more than 5 kilometers away from a flower shop, and it should be next to an art supply store."
|
| 39 |
+
"In the area of Maranhão, find a charging station enclosed by a parking area that is not more than 100 yd from a medical facility.","You are looking for an electric vehicle charging station in your area, that is located within a parking area and no more than 100 yards from a medical facility."
|
| 40 |
+
"Look for a cathedral in São Paulo, Brazil within a 100 meter radius of an atm. There should be a fountain in the surroundings of the cathedral, no further away than 0.5km.","You are looking for a place of worship in your city, that is located within a 100 meter radius of an ATM. Additionally, there should be a decorative water feature in the vicinity of the place of worship, no further away than 0.5 kilometers."
|
| 41 |
+
"Please search for a McDonalds in Hidalgo, Mexico.",You are looking for a fast food restaurant in your area.
|
| 42 |
+
"Search for a planetarium containing a public toilet. It should be within 85,800 yards of a public clock.","You are looking for a place to observe stars and planets in your area that has a public restroom available, and it should be located within 85,800 yards of a public timekeeping device."
|
| 43 |
+
"Please find me a hospital within 300 meters to a pharmacy in Trappes, Île-de-France, France. Further, a chapel should be within a 2,2km distance.","You are looking for a hospital in your area that is within 300 meters of a pharmacy, and there should be a chapel located within 2.2 kilometers from the hospital."
|
| 44 |
+
Please look for an Australian Football Field containing a smoking area within 5km of a Wi-Fi Hotspot.,"You are looking for a sports field where Australian football is played, that has a designated smoking area within 5 kilometers of a location with Wi-Fi access."
|
| 45 |
+
"search at Plomelin, France. School next to a bicycle parking area. School not far from airport. airport 5 km from school only distance.","You are looking for a school in your area that is located next to a bicycle parking area and is not far from an airport, with the airport being approximately 5 kilometers away from the school."
|
| 46 |
+
"Please find me a cable station in Savannakhet Province, Laos, that is not more than 10 km away from the airport. Preferably, it should also have an outside seating area.","You are looking for a cable station in your region that is no more than 10 km away from the nearest airport. Ideally, it should also have an outdoor seating area."
|
| 47 |
+
Find a bicycle repair station in my area,You are looking for a place to repair your bicycle in your area.
|
| 48 |
+
Find the nearest bar in Tennessee.,You are looking for the nearest bar in your area.
|
| 49 |
+
"Search for a car rental in Lamarque, Nouvelle-Aquitaine, France, up to 5 yd away from an airport with a pub.","You are looking for a car rental service in your area, that is located within 5 yards of an airport that has a pub nearby."
|
| 50 |
+
"Looking for a school in Bayan-Ölgii Province, 7 miles away from an airport with an eatery nearby.","You are looking for a school in your area that is located within 7 miles of an airport, and has an eatery nearby."
|
| 51 |
+
"Find me a cafe in Nouvelle-Aquitaine not far away from a driving school, at most 5 km from a taxi stand.","You are looking for a cafe in your area that is located near a driving school, and is no more than 5 kilometers away from a taxi stand."
|
| 52 |
+
"Is there a bank next to a change offic within 55 metres from a mony transfer in Port Moresby, Papua New Guinea.","You are looking for a bank located next to a currency exchange office, within 55 meters of a money transfer service in your area."
|
| 53 |
+
Can you show all sand tracks at the lake where a restaurant is less than 50 metres away?,"You are looking for sandy paths near a body of water, where a dining establishment is located within 50 meters."
|
| 54 |
+
Please look for a corn farm in Olt County. This farm should be opposite from a gas station. The gas station is 50 metres next to a railway. ,You are looking for a corn farm in your area that is located directly across from a fuel station. This fuel station is situated within 50 metres of a train track.
|
| 55 |
+
"Is there an Esso gas station in Pennsylvania, US",You are looking for a gas station in your area.
|
| 56 |
+
Is there a castle next to a forest in Arrondissement de Port-de-Paix? Show me only those castles which are on a hill and next to the forest. ,"You are looking for a historical site in your area, specifically a castle that is located on a hill and adjacent to a forest."
|
| 57 |
+
"Is there a 지멘스 power plant in Coruia, Maramures Country, Romania? And is it 50.50 metres away from a tower? ","You are looking for a power plant in your area, that is located within 100 metres from a tower."
|
| 58 |
+
"Please find drinking water within 100m from a hotel in Tovuz, Tovuz District, Azerbaijan",You are looking for a source of drinking water within 100 meters from a hotel in your area.
|
| 59 |
+
"Is there a post office in Stevens County, United States",You are looking for a post office in your area.
|
| 60 |
+
Is there an office of an estate agent called Deutsche Wohnen in this area? Show me only those office which are on the ground floor of a building.,"You are looking for a real estate agency in your area, specifically one that is located on the ground floor of a building."
|
| 61 |
+
"Is there a chess game 10 metres away from a bistro outdoor seating in a park in Kadayanallur, India?",You are looking for a chess game that is located 10 metres away from a bistro with outdoor seating in a park.
|
| 62 |
+
"Is there an office of a political party nearby with a pub at least 50.5 metres away from each other in the vicinity Agusan del Norte, Philippines?","You are looking for an office of a political party in your area, that has a pub located at least 50.5 metres away from it."
|
| 63 |
+
"Is there a horse riding center two kilometers from a swimming pool and a lake in Country Park, Italy?",You are looking for a horse riding center that is located two kilometers from a swimming pool and a lake in a recreational area.
|
| 64 |
+
Is there a recycling plant nearby a gas station which is 100.34 meters away from an airport?,You are looking for a recycling facility near a fuel station that is located within 100 meters of an air transportation hub.
|
| 65 |
+
I am searching for a youth center in Vitebsk Region. The youth center is 100 meters away from a fire tower. There should be a post office in front of the youth center.,"You are looking for a youth center in your area that is located within 100 meters of a fire tower, and there should be a post office directly in front of the youth center."
|
| 66 |
+
"I am looking for a marketplace in واہاكا, n 0.05 ft away from an internet cafe that contains an ATM.","You are looking for a marketplace in your city that is very close to an internet cafe, which also has an ATM available."
|
| 67 |
+
Loking for discounter in Lombrady. Must be 100 metres way from a medical suppy store. There shuld be also hairdresser close to the discounter and the medical supply store.,"You are looking for a discount store in your area that is located within 100 meters of a medical supply store. Additionally, there should be a hairdresser nearby, close to both the discount store and the medical supply store."
|
| 68 |
+
"I am searching for a shopping mall in Albanel, Canada. The shopping mall contains an alcohol shop and a bakery.",You are looking for a shopping mall in your area that has an alcohol shop and a bakery.
|
| 69 |
+
"I am looking for a nursing home which is close to a post offize and 1,01 ft away from a public toilet in Lublin Voivodeship.",You are looking for a nursing home in your area that is close to a post office and within 1 foot of a public toilet.
|
| 70 |
+
"I am searching in Kornwestheim, Baden-Württemberg in Germany. Please find me a street lamp within 400 meters from an emergency telephone.",You are looking for a street lamp in your area that is located within 400 meters of an emergency telephone.
|
| 71 |
+
I search a trench in Vrancea County.,You are looking for a trench in your area.
|
| 72 |
+
"I am looking for a motorcycle repair shop in the Saitama Prefecture, Japan.",You are looking for a motorcycle repair shop in your area.
|
| 73 |
+
"Find me a pertrol statsion that is 400 meters way from a social facility less than 3 building levels high and with a name that begins with ""ole"". The ptrl station is 300 miter froma fabrc shop in Dâmbovița County, Romario.","You are looking for a petrol station that is 400 meters away from a social facility that is less than 3 stories high and has a name starting with ""ole"". The petrol station is also 300 meters from a fabric shop."
|
| 74 |
+
I am looking for a vacant shop within an office building of less than 10 floors. There is a gambling den that is 0.5 miles from the vacant shop.,"You are searching for an available retail space within a low-rise office building, specifically one that has fewer than 10 floors. Additionally, there is a gaming establishment located half a mile from the retail space."
|
| 75 |
+
"I am looking for a brick made pergola of less than 2 meters high that is 50 meters away from high-rise apartments (house number 384-A) that have a charging base in it, this should be in Al Adl, Makkah, Saudi Arabia.","You are looking for a brick-made pergola that is less than 2 meters high, located within 50 meters of a high-rise residential building that has charging stations available."
|
| 76 |
+
"I am looking for a give way sign in Costeştii din Vale, Dâmbovița County, Romania that is within a radius of 60 km of a space airpotr.","You are looking for a traffic sign indicating a give way in your area, that is located within a 60 km radius of a spaceport."
|
| 77 |
+
"In Austin, Texas, pls find me a rental shop that is within 70 meters from the city limit sign. The rental shop is more or less 3 miles from a military range.","You are looking for a rental shop in your area that is within 70 meters from a city limit sign, and is approximately 3 miles from a military facility."
|
| 78 |
+
I is searching in La Bégude-de-Mazenc. Find second hand shop inside a hotel. Hotel has building number 76. A storage rental is less than eight hundred yards from second hand shop.,"You are looking for a second-hand shop located inside a hotel in your area, where the hotel has a specific building number. Additionally, there is a storage rental facility located within 800 yards of the second-hand shop."
|
| 79 |
+
"Find Mural, 300 yards form Burger King restaurant with pakring spotts in Laborde, Cordoba, Argentina",You are looking for a mural in your area that is located 300 yards from a fast food restaurant with parking spots available.
|
| 80 |
+
Find me a car shop with 2 floors called Master Farma next to a bus stop. The car shop must be 1.2 kilometers away from an aquaduct.,"You are looking for a two-story car shop in your area, located next to a public transportation stop, and it should be 1.2 kilometers away from a waterway."
|
| 81 |
+
I am searching for a gym on a houseboat. The gym has housenumber 21. There is a correctional facility that is more or less 1 kilometer away from the houseboat.,"You are looking for a gym located on a unique floating structure. The gym has a specific identification number. Additionally, there is a correctional facility located approximately 1 kilometer away from the floating structure."
|
| 82 |
+
Find a speet kamera within 100 meater from antenna in Paraiba.,You are looking for a speed camera in your area that is located within 100 meters from a communication antenna.
|
| 83 |
+
"Find me an elemntary school with the shinto relegion that is arount 1 kilometer away from a round-about. The round-about has accessible parking space. The roundabout is 10 meters away from an apparttmentt building. All of this is in Milverton, United Kingdom.","You are looking for an elementary school that teaches the Shinto religion, located approximately 1 kilometer from a roundabout. The roundabout has accessible parking spaces and is situated 10 meters from a residential building."
|
| 84 |
+
"I am loking for a sprots shop that is innside an outdoor fitness within one tousand tree hundred feet from high-speed train tracks in Anjouan, Comros.","You are looking for a sports shop that is located within an outdoor fitness area, which is within 1300 feet from high-speed train tracks."
|
| 85 |
+
"I am looking for a TV studio in Hilversum, Netherlands.",You are looking for a television studio in your area.
|
| 86 |
+
"Find mi a Kristian Church, feive hundred yards from a fre tower. The fire tower is within 850 yeards from a hausboat in the City of Norfolk, Virginia, US.",You are looking for a church in your area that is located 500 yards from a fire tower. The fire tower is within 850 yards from a houseboat.
|
| 87 |
+
"Hello SPOT, can you please help me? I am looking for a seaport with both an overhead crane and a lift gate in it.",You are looking for a transportation hub that has both a loading crane and a lift gate available.
|
| 88 |
+
"I am searching for an Australian Football Field in Perth with a public outdoor grill in there, there is a power plant on 2 km distance from the Australian Football Field.","You are looking for a sports field for Australian football in your area that has a public outdoor grill available. Additionally, there is an industrial facility located 2 kilometers away from the sports field."
|
| 89 |
+
Find us an elephant path less than 150 m from a scientific research institute in Thailand.,"You are looking for a walking trail for elephants in your area, that is located within 150 meters of a scientific research facility."
|
| 90 |
+
"Find me a bow shooting and a bowling green within fifty-two thousand meters from each other in Antônio Prado, Brazil.","You are looking for a location to practice archery and a bowling facility that are within 52,000 meters of each other in your area."
|
| 91 |
+
"Show me a cycl stand an a fire hydrant on a colllege campus in Las Calavveras, Mexiko",You are looking for a bicycle stand and a fire hydrant on a college campus in your area.
|
| 92 |
+
"Find me parking spaces nearby a gas station less than 500 meters away from a taxi stand in Monte das Gameleiras, Brazil",You are looking for parking spaces near a fuel station that are less than 500 meters away from a taxi stand.
|
| 93 |
+
"Find me parking spaces at a gas station less than 100.50 meters away from a taxi stand in Cundinamarca, Colombia.",You are looking for parking spaces at a fuel station that are less than 100.50 meters away from a taxi stand in your area.
|
| 94 |
+
"I am looking for a medical centre in Jalisco, Mexico with several options. On the grounds of this centre there is a public phone about 50 feet from a pharmacy.","You are looking for a medical centre in your area that has multiple options available. Within the grounds of this centre, there is a public phone located approximately 50 feet from a pharmacy."
|
| 95 |
+
"Find a trading centre in Parfinskiy Rayon, Russia with a post office and a public bathroom",You are looking for a trading center in your area that has a post office and a public bathroom available.
|
| 96 |
+
Find me an elementary school that is within four miles from a charging station.,You are looking for an educational institution for young children that is located within four miles of a facility where electric vehicles can be charged.
|
| 97 |
+
Please find me a public library with a coffee bar and outdoor seating in Comuna Stoicăneşti,You are looking for a public library in your area that has a coffee bar and outdoor seating.
|
| 98 |
+
"Find me a police station in Canterbury Region, New Zealand. It should be accessible from the street",You are looking for a police station in your area that is easily accessible from the street.
|
| 99 |
+
"I am looking for an amusement arcade in the East Attica Regional Unit, Greece, with a fire hydrant 15 yards in front of the building","You are looking for an amusement arcade in your area, that has a fire hydrant located within 15 yards in front of the building."
|
| 100 |
+
I am looking for locations. I searching for an communications tower who is located within construction site. The aforementioned tower are locate in close distances to H&M.,You are looking for a communications tower located within a construction site. The tower should be situated close to a retail store.
|
| 101 |
+
"Find me a location with a public bookcase in front of bicycle shop, with the bicycle shop is around 1.5 miles from a water park.","You are looking for a location with a public bookcase in front of a bicycle shop, which is approximately 1.5 miles away from a recreational water facility."
|
| 102 |
+
"I am searching for a location that fulfils the following requirements in Horní Čermná, Pardubický kraj, Czech Republic. It features a large car park, which is located at an approximately 500 yard distance from a fashion boutique.","You are searching for a location that meets the following requirements in your area. It features a large parking lot, which is located at an approximately 500-yard distance from a clothing store."
|
| 103 |
+
There is canal that is ~ 600yd from boat dock. The boat dock are also surrounded from grassland.,You are looking for a waterway that is approximately 600 yards from a docking area for boats. The docking area is also surrounded by open grassy land.
|
| 104 |
+
Please identify the exact location of a Funeral Home that is 500 yd away from a flower store and 1.6 mi from a highway link in အင်္ဂလန်၊ ယူနိုက်တက်ကင်းဒမ်း.,You are looking for a funeral home in your area that is located 500 yards away from a flower shop and 1.6 miles from a major highway.
|
| 105 |
+
"I'm searching for sports center that contains a swimming pool and a baseball field, in Rivière du Rempart, Mauritius.",You are looking for a sports center in your area that has a swimming pool and a baseball field.
|
| 106 |
+
"Find a pharmacy in Maclean, New South Wales, Australia. The pharmacy is 130,5 yd from the entrance to a book store.",You are looking for a pharmacy in your area that is located within 150 yards from the entrance of a bookstore.
|
| 107 |
+
Find me a church in Bavaria from where I can reach a supermarket in 500 m and see a mountain within 2 km.,You are looking for a place of worship in your area that is within 500 meters of a grocery store and has a view of a natural elevation within 2 kilometers.
|
| 108 |
+
Please identify the exact location of a restaurant that is next to a bus stop and 250 yd from a historic monument.,You are looking for a restaurant in your area that is located next to a bus stop and within 250 yards of a historic monument.
|
| 109 |
+
"Please find me a doctor within 100 meters form a health centre and next to a dentist in Rogaland, Norway.",You are looking for a doctor in your area that is located within 100 meters of a health center and next to a dental clinic.
|
| 110 |
+
Plase find a boat rentl place in Garbagna Novarese that i 300 meters from a car wash and a MC唐納斯.,You are looking for a boat rental location in your area that is within 300 meters of a car wash and a fast food restaurant.
|
| 111 |
+
"Please find me in Windsor, United States, a car rental. The car rental is next to pub and within 200 meters an ice cream parlor",You are looking for a car rental service in your area that is located next to a pub and within 200 meters of an ice cream parlor.
|
| 112 |
+
"Please find a music venue in Country Park, Italy that is 100 meters from a nursing home and a kiosk.",You are looking for a music venue in your area that is located within 100 meters of a nursing home and a kiosk.
|
| 113 |
+
"A community center in Coruia, Maramureș County, in Romania within 200 meters of a planetarium. Within 1 km there is a 맥도날드.","You are looking for a community center in your area that is located within 200 meters of a planetarium. Additionally, there is a fast food restaurant within 1 kilometer of the community center."
|
| 114 |
+
Please find me a cafe and an ice cream parlor within a radius of 100 meters to each other in the Tovuz District in Azerbaijan.,You are looking for a cafe and an ice cream parlor that are within a 100-meter radius of each other in your area.
|
| 115 |
+
"Please find me a research Institute in Stevens County, United States.",You are looking for a research institute in your area.
|
| 116 |
+
"Please find a pharmacy that is 50 meters from a tax stand and close to a health car center in Kadayanallur, India. ",You are looking for a pharmacy in your area that is within 50 meters of a tax stand and is also close to a health care center.
|
| 117 |
+
I am loking for an air twer in Port Moresby in Papua New Guinea that is 50 metrs from a car wash and I can se a youth center on the opposite side.,"You are looking for a place to stay in your city that is within 50 meters of a car wash, and you can see a youth center on the opposite side."
|
| 118 |
+
"In the area of Olt County, please find me a cable car station within 500 meters from a railway station. There is also a car park at the railway station.","You are looking for a cable car station in your area that is within 500 meters of a railway station, which also has a car park available."
|
| 119 |
+
"I am looking for an italian restaurant with outdoor seating, the restaurant is within 300 meters from train tracks and a railway bridge.","You are looking for an Italian restaurant with outdoor seating in your area, that is located within 300 meters from a train station and a railway bridge."
|
| 120 |
+
"Please find me a driving school in Pennsylvania, United States, in 150 metres distance of a McDonald's.",You are looking for a driving school in your area that is within 150 metres of a fast food restaurant.
|
| 121 |
+
"In New Delhi, India, there is a coffee place called ""In Dia"" with outdoor seating, 50 meters away from a pharmacy and a historic monument. Can you find that for me please?","You are looking for a coffee shop with outdoor seating in your city, located within 50 meters of a pharmacy and a historic site."
|
| 122 |
+
Where in South Dakota can I find a nepalese restaurant less than 350 yards away from a jewish synagogue?,You are looking for a Nepalese restaurant in your area that is located less than 350 yards away from a Jewish synagogue.
|
| 123 |
+
I can see an H&M just about 100 meters away from a greek restaurant with outdoor seating,You are looking for a clothing store that is located approximately 100 meters away from a restaurant that offers outdoor seating.
|
| 124 |
+
Look for a church tower that is less than 130m high.,You are searching for a religious building with a tower that is less than 130 meters tall.
|
| 125 |
+
There is a kiosk with the name ending in *signa 10 yards away from a bus stop and a subway station in Manila.,"You are looking for a kiosk that has a name ending in a specific way, located within 10 yards of a bus stop and a subway station."
|
| 126 |
+
"Find me all historic monuments that are not higher than 30m and within a park in Luang Prabang, Laos.",You are looking for historic monuments that are not taller than 30 meters and are located within a park in your area.
|
| 127 |
+
"Next to a tram stop named ""center"" is a cafe with outdoor seating, just 120 meters away from a Burger King.","You are looking for a cafe with outdoor seating in your city, located near a public transport stop, and within a short walking distance from a fast food restaurant."
|
| 128 |
+
"I'm looking for a supermarket from a brand ending in ""ermarché"" with a parking lot next to it and a power line running past it in less than 15 meters distance.","You are searching for a supermarket from a specific brand that ends with ""ermarché"". The supermarket should have a parking lot adjacent to it, and there should be a power line located within 15 meters of the store."
|
| 129 |
+
find me a parking space within 200 meters from a communication tower and a power tower in legnago,You are looking for a parking space within 200 meters from a communication tower and a power tower in your area.
|
| 130 |
+
"find me a pakistani restaurant close to Kebabland, ontaro, canada",You are looking for a Pakistani restaurant in your area that is located near a popular kebab restaurant.
|
| 131 |
+
find me a beach within of 70 meters distance from a bar on lake como in italy,You are looking for a beach that is within 70 meters of a bar near a body of water.
|
| 132 |
+
"find me a recreation area close to deutsche welle, bonn, germany",You are looking for a recreation area in your city.
|
| 133 |
+
find me a bus stop close to a church and a train station in pulheim,You are looking for a bus stop that is located near a place of worship and a transportation hub in your area.
|
| 134 |
+
find me a football pitch close to the water in quito,"You are looking for a sports field to play football in your area, that is located near a body of water."
|
| 135 |
+
find me a hotel 400 meters of a watersport center and roundabout,You are looking for a place to stay in your city that is within 400 meters of a recreational facility for water sports and a traffic circle.
|
| 136 |
+
show me playgrounds in this area,You are looking for playgrounds in your vicinity.
|
| 137 |
+
a 711 near a liquor store in the vicinity of an airport in new york ,You are looking for a convenience store near a liquor store in the vicinity of an airport.
|
| 138 |
+
all furniture stores in shanghai,You are looking for all furniture stores in your area.
|
| 139 |
+
all gambling halls in berlin within 300 meters of a bakery,You are looking for gambling establishments in your city that are located within 300 meters of a bakery.
|
| 140 |
+
"find a bus stop next to a mcdonald's and a mosque in beirut, lebanon",You are looking for a bus stop located next to a fast food restaurant and a place of worship in your area.
|
| 141 |
+
find a bus stop and a supermarket next to dw in berlin,"You are looking for a bus stop and a supermarket in your area, with both locations being in close proximity to each other."
|
| 142 |
+
there is a park in izmir that contains a soccer field with a small hut with a red roof next to it.,You are looking for a park in your area that has a soccer field and a small hut with a red roof located next to it.
|
| 143 |
+
find me all hydroelectric power plants next to a bridge and a pipeline next to it,You are looking for all hydroelectric power plants in your area that are located next to a bridge and have a pipeline adjacent to them.
|
| 144 |
+
i sm looking for a fountain in a park in stuttgart,You are looking for a decorative water feature in a recreational area in your city.
|
| 145 |
+
find me a fountain next to a library in maastricht,You are looking for a decorative water feature located next to a public information resource center in your area.
|
| 146 |
+
i am looking for a traffic light that is close to a museum in ulaanbaatar,You are looking for a traffic light that is close to a cultural institution in your city.
|
| 147 |
+
find me a copyshop close to a university building,You are looking for a place to print and copy documents near an educational institution.
|
| 148 |
+
find me a park with a fountain in stuttgart close to a thalia,You are looking for a park with a fountain in your city that is located near a bookstore.
|
| 149 |
+
find me a spring in amsterdam infront of a building with a glass roof,"You are looking for a natural spring in your city, located in front of a building with a glass roof."
|
| 150 |
+
"find me a a restaurant called ""pizza express"" near a mcdonalds and tram station ","You are looking for a restaurant that serves pizza in your area, located near a fast food establishment and a public transportation station."
|
| 151 |
+
find me a Five Guys close to a pasta paradise in venezuela,"You are looking for a fast food restaurant that serves burgers, located near an Italian restaurant that specializes in pasta, in your country."
|
| 152 |
+
"find me a a restaurant called ""señor verde"" near a peppino restaurant and bus station in french guiana","You are looking for a restaurant named ""señor verde"" near another restaurant and a bus station in your area."
|
| 153 |
+
find me a trainstation next to a wendy's in captown,You are looking for a train station in your area that is located next to a fast food restaurant.
|
| 154 |
+
find me a bus platform next to a cheesecake factory restaurant and a building with a red roof in dubrovnic,"You are looking for a bus platform near a dessert restaurant that specializes in cheesecake, and also close to a building with a distinctive red roof."
|
| 155 |
+
"find me a hotel inside 200 meters of a roundabout and a shopping center at the island of djerba, tunesia",You are looking for a hotel within 200 meters of a roundabout and a shopping center in your area.
|
| 156 |
+
"find me a club within 2.5 kilometers of a diving school and a beach volleyball field on the island of montreal, canada",You are looking for a club within 2.5 kilometers of a diving school and a beach volleyball field in your area.
|
| 157 |
+
find me a hotel not more than 2.8 miles from streetart on hawaii,You are looking for a hotel that is located within 2.8 miles from a street art location in your area.
|
| 158 |
+
"find me art gallery on isla de roberto, colombia",You are looking for an art gallery in your area.
|
| 159 |
+
find in beirut shops for mobile phones,You are looking for shops that sell mobile phones in your city.
|
| 160 |
+
find in rabat hispitals,You are looking for hospitals in your city.
|
| 161 |
+
a commercial near a gas station andorra,You are looking for a commercial establishment in your area that is located near a fuel station.
|
| 162 |
+
"find me a hospital next to a co-working space in essen, germany",You are looking for a hospital located next to a co-working space in your area.
|
| 163 |
+
"i'm lloking for a seafood restaurant with 2 floors next to the beach on sardinia, italy",You are looking for a seafood restaurant with two floors located next to a beach in your area.
|
| 164 |
+
show me all kiosks within 500m of a park in cologne,You are looking for all kiosks within 500 meters of a park in your area.
|
| 165 |
+
"show me all towers less that 50m high that are within 100m of a river in cologne, germany","You are looking for all structures that are less than 50 meters high, located within 100 meters of a waterway in your area."
|
| 166 |
+
show a rotary near the port ,You are looking for a roundabout near a waterfront area.
|
| 167 |
+
Please show me all railways that are in a cutting,You are looking for all transportation routes that are located in a trench or depression in your area.
|
| 168 |
+
I am look for dark orange bench located in playground,You are searching for a dark orange bench located in a recreational area for children.
|
| 169 |
+
I looking for softball field in नई दिल्ली,You are looking for a sports field in your city where you can play softball.
|
| 170 |
+
show all alpine huts with blue walls that are located in winter sports areas,You are looking for all types of mountain lodges or cabins with blue walls that are situated in areas designated for winter sports activities.
|
| 171 |
+
trying to find a супер фритерлер location with mountain range nearby in kyrgyz republic,You are looking for a place to enjoy fried food in a region with a mountain range nearby.
|
| 172 |
+
Please help me find a Cortina ice cream parlor that serves vegan ice cream and has a public bathroom,You are looking for an ice cream parlor in your area that offers vegan ice cream options and has a public restroom available for customers.
|
| 173 |
+
all locations of ملك الفلافل which is opposite from Eiffel cafe with black roof in Algier ,You are looking for all locations of a falafel restaurant that is situated opposite a café with a black roof in your city.
|
| 174 |
+
I am looking for an interstate highway running through a cutting that is surrounded by a wind farm,"You are looking for an interstate highway that runs through a cutting, which is surrounded by a renewable energy facility that generates power from wind."
|
| 175 |
+
I'm trying to find a halal butcher in a mall that has elevators and steel walls,You are looking for a halal butcher in a shopping center that has elevators and is constructed with steel walls.
|
| 176 |
+
there is a wooden shrine 69.69 yards from a pale blue streetlamp and a lucky burger in ភ្នំពេញ ប្រទេសកម្ពុជា,"You are looking for a wooden shrine in your city, that is located within 70 yards from a streetlamp, and a fast food restaurant nearby."
|
| 177 |
+
there is an autobahn labelled A3 with a car-pool lane in a forest,You are looking for a highway in a wooded area that has a designated carpool lane.
|
| 178 |
+
"in berlin, find a georgian bistro located adjacent to a diving school",You are looking for a Georgian bistro in your city that is located next to a diving school.
|
| 179 |
+
please show me the mcdonald's convenience stores you can find in Ασπρόπυργος,You are looking for fast food restaurants in your area that are conveniently located near stores.
|
| 180 |
+
find fo me a eating place taht serves mongolian food,You are looking for a restaurant that serves Mongolian cuisine in your area.
|
| 181 |
+
show all tram tracks that run besides peruvian fast food restaurants,You are looking for all tram tracks that run alongside fast food restaurants specializing in a specific cuisine.
|
| 182 |
+
where in serbia can I find a Код Јонуза restaurant location? ,You are looking for a restaurant in your area that serves a specific type of cuisine.
|
| 183 |
+
all Don Quijote that are in a retail building with a purple roof coluor in 東京都,You are looking for a store located in a retail building with a purple roof in your city.
|
| 184 |
+
a building with a tin roof,You are searching for a structure with a metal roof in your area.
|
| 185 |
+
show me a elementary school with a red roof,You are looking for an educational institution for young children that has a distinctive red roof.
|
| 186 |
+
"Show me all 燒烤場 in Foshan, Guangdong, China",You are looking for a barbecue venue in your area.
|
| 187 |
+
I'm trying to find all པ་སྟའི་ཕོ་བྲང་། eateries in གཡའ་རྒྱ།,You are trying to find all types of eateries in your area.
|
| 188 |
+
"im lookign for a pharmaceutical dispensary whose name starts with ""byouk"" in düsseldorf","You are looking for a pharmaceutical dispensary in your area, specifically one whose name starts with ""byouk""."
|
| 189 |
+
locate me a motorcycle rental place that has the letters ກີຢາ in its name,You are looking for a motorcycle rental service in your area that has specific characters in its name.
|
| 190 |
+
show me all country roads with more than two lanes,You are looking for all rural roads in your area that have more than two lanes.
|
| 191 |
+
find me the dual carriage highway which have more than 3 lanes in each direction which is also a toll road,You are looking for a dual carriageway in your area that has more than three lanes in each direction and is also a toll road.
|
| 192 |
+
show me all hangars located in military bases,You are looking for all storage facilities located within military installations.
|
| 193 |
+
all communications masts in airfields in beirut,You are looking for all communication towers located at airports in your region.
|
| 194 |
+
there is a shipdock. contained in the shipdock is a storage tank.,"You are looking for a location that has a docking area for ships, which also contains a storage facility."
|
| 195 |
+
there is an island called Κάλυμνος which is part of greece,You are looking for an island that is part of a country in the Mediterranean region.
|
| 196 |
+
there is a Kitti Chai restaurant next to a Vegan Land,"You are looking for a restaurant that serves a specific type of cuisine, located next to another establishment that offers a different dietary option."
|