Подключение
Базовый URL, учётные данные и доступный сервер.
Отличайте плюс в записи %2B от пробела и отклоняйте неверные процентные последовательности или UTF-8.
Базовый URL, учётные данные и доступный сервер.
Модель, которую предоставляет настроенный endpoint.
Объём контекста и поддержка инструментов определяются моделью и сервером.
import re
from urllib.parse import parse_qsl, urlencode
def append_query(query, key, value):
if any(type(x) is not str for x in (query, key, value)):
raise ValueError("query.type")
if re.search(r"%(?![0-9A-Fa-f]{2})", query):
raise ValueError("query.escape")
pairs = parse_qsl(query, keep_blank_values=True,
strict_parsing=True, errors="strict", max_num_fields=1000)
return urlencode([*pairs, (key, value)])