Log actual Ollama token counts and add user guide
Add a second usage log line after each proxy response with actual ↑prompt ↓completion token counts from Ollama (prompt_eval_count/eval_count for native endpoints, usage object for OpenAI endpoint). Also adds KURZANLEITUNG.md for students and colleagues covering API access, model selection, Python examples, opencode setup, and quota/admin information.
This commit is contained in:
+16
-3
@@ -101,7 +101,11 @@ async def generate(request: Request, db: Session = Depends(get_db)):
|
||||
request.state.api_key_name, body.get("model", "?"), prompt_tokens, prompt_preview)
|
||||
try:
|
||||
response = await proxy_request(f"{ollama_url}/api/generate", method="POST", json_data=body)
|
||||
return JSONResponse(content=response.json(), status_code=response.status_code)
|
||||
resp_json = response.json()
|
||||
usage_log.info('%s | /api/generate | %s | actual ↑%d ↓%d tokens',
|
||||
request.state.api_key_name, body.get("model", "?"),
|
||||
resp_json.get("prompt_eval_count", 0), resp_json.get("eval_count", 0))
|
||||
return JSONResponse(content=resp_json, status_code=response.status_code)
|
||||
except Exception as exc:
|
||||
error_log.error("Proxy error | %s | /api/generate | %s | %s: %s",
|
||||
request.state.api_key_name, body.get("model", "?"), type(exc).__name__, exc, exc_info=exc)
|
||||
@@ -121,7 +125,11 @@ async def chat(request: Request, db: Session = Depends(get_db)):
|
||||
request.state.api_key_name, body.get("model", "?"), prompt_tokens, _last_user_msg(messages))
|
||||
try:
|
||||
response = await proxy_request(f"{ollama_url}/api/chat", method="POST", json_data=body)
|
||||
return JSONResponse(content=response.json(), status_code=response.status_code)
|
||||
resp_json = response.json()
|
||||
usage_log.info('%s | /api/chat | %s | actual ↑%d ↓%d tokens',
|
||||
request.state.api_key_name, body.get("model", "?"),
|
||||
resp_json.get("prompt_eval_count", 0), resp_json.get("eval_count", 0))
|
||||
return JSONResponse(content=resp_json, status_code=response.status_code)
|
||||
except Exception as exc:
|
||||
error_log.error("Proxy error | %s | /api/chat | %s | %s: %s",
|
||||
request.state.api_key_name, body.get("model", "?"), type(exc).__name__, exc, exc_info=exc)
|
||||
@@ -185,7 +193,12 @@ async def openai_chat_completions(request: Request, db: Session = Depends(get_db
|
||||
|
||||
try:
|
||||
response = await proxy_request(target, method="POST", json_data=body)
|
||||
return JSONResponse(content=response.json(), status_code=response.status_code)
|
||||
resp_json = response.json()
|
||||
usage = resp_json.get("usage", {})
|
||||
usage_log.info('%s | /v1/chat/completions | %s | actual ↑%d ↓%d tokens',
|
||||
request.state.api_key_name, model_name,
|
||||
usage.get("prompt_tokens", 0), usage.get("completion_tokens", 0))
|
||||
return JSONResponse(content=resp_json, status_code=response.status_code)
|
||||
except Exception as exc:
|
||||
error_log.error("Proxy error | %s | /v1/chat/completions | %s | %s: %s",
|
||||
request.state.api_key_name, model_name, type(exc).__name__, exc, exc_info=exc)
|
||||
|
||||
Reference in New Issue
Block a user