Spaces:
Sleeping
Sleeping
| """Manifest as an app service.""" | |
| from typing import Any, Dict, cast | |
| from fastapi import APIRouter, FastAPI, HTTPException | |
| from manifest import Manifest | |
| from manifest.response import Response as ManifestResponse | |
| from web_app import schemas | |
| app = FastAPI() | |
| api_router = APIRouter() | |
| async def root() -> Dict: | |
| """Root endpoint.""" | |
| return {"message": "Hello to the Manifest App"} | |
| def prompt_manifest(*, manifest_in: schemas.ManifestCreate) -> Dict: | |
| """Prompt a manifest session and query.""" | |
| manifest = Manifest( | |
| client_name=manifest_in.client_name, | |
| client_connection=manifest_in.client_connection, | |
| engine=manifest_in.engine, | |
| cache_name=manifest_in.cache_name, | |
| cache_connection=manifest_in.cache_connection, | |
| ) | |
| manifest_prompt_args: Dict[str, Any] = { | |
| "n": manifest_in.n, | |
| "max_tokens": manifest_in.max_tokens, | |
| } | |
| if manifest_in.temperature: | |
| manifest_prompt_args["temperature"] = manifest_in.temperature | |
| if manifest_in.top_k: | |
| manifest_prompt_args["top_k"] = manifest_in.top_k | |
| if manifest_in.top_p: | |
| manifest_prompt_args["top_p"] = manifest_in.top_p | |
| try: | |
| response = manifest.run( | |
| prompt=manifest_in.prompt, return_response=True, **manifest_prompt_args | |
| ) | |
| response = cast(ManifestResponse, response) | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |
| return { | |
| "response": response.get_response(), | |
| "cached": response.is_cached(), | |
| "request_params": response.get_request_obj(), | |
| } | |
| app.include_router(api_router) | |