workbench / models /http_chat.py
GitHub Actions
Initial ZeroGPU deployment with spaces shim
7f9dfed
Raw
History Blame Contribute Delete
1.04 kB
from __future__ import annotations
from collections.abc import Callable
from typing import Any, cast
import requests
from models.response_parsing import chat_completion_payload
def post_json(
post_func: Callable[..., requests.Response],
url: str,
payload: dict[str, Any],
timeout: float,
headers: dict[str, str] | None = None,
) -> dict[str, Any]:
response = post_func(
url,
json=payload,
headers=headers,
timeout=timeout,
)
response.raise_for_status()
return cast(dict[str, Any], response.json())
def post_chat_completion(
post_func: Callable[..., requests.Response],
url: str,
model: str,
system_prompt: str,
user_prompt: str,
temperature: float,
max_tokens: int,
timeout: float,
headers: dict[str, str] | None = None,
) -> dict[str, Any]:
return post_json(
post_func,
url,
chat_completion_payload(model, system_prompt, user_prompt, temperature, max_tokens),
timeout,
headers,
)