mirror of
https://github.com/vladmandic/automatic
synced 2026-09-19 17:24:32 +02:00
feat(api): add LLM generation parameters to VQA endpoint
Add optional LLM generation parameters to the VQA API request model, allowing per-request override of settings: - max_tokens, temperature, top_k, top_p, num_beams, do_sample - thinking_mode, prefill, keep_thinking, keep_prefill Changes: - Add 10 new optional fields to ReqVQA model with descriptive docs - Update get_kwargs() to support per-request overrides via singleton - Add helper functions get_keep_thinking(), get_keep_prefill() - Update post_vqa endpoint to pass generation kwargs - Add _generation_overrides instance variable to VQA class
This commit is contained in:
@@ -215,8 +215,37 @@ def post_vqa(req: models.ReqVQA):
|
||||
raise HTTPException(status_code=404, detail="Image not found")
|
||||
image = helpers.decode_base64_to_image(req.image)
|
||||
image = image.convert('RGB')
|
||||
|
||||
# Build generation kwargs from request parameters (None values are ignored)
|
||||
generation_kwargs = {}
|
||||
if req.max_tokens is not None:
|
||||
generation_kwargs['max_tokens'] = req.max_tokens
|
||||
if req.temperature is not None:
|
||||
generation_kwargs['temperature'] = req.temperature
|
||||
if req.top_k is not None:
|
||||
generation_kwargs['top_k'] = req.top_k
|
||||
if req.top_p is not None:
|
||||
generation_kwargs['top_p'] = req.top_p
|
||||
if req.num_beams is not None:
|
||||
generation_kwargs['num_beams'] = req.num_beams
|
||||
if req.do_sample is not None:
|
||||
generation_kwargs['do_sample'] = req.do_sample
|
||||
if req.keep_thinking is not None:
|
||||
generation_kwargs['keep_thinking'] = req.keep_thinking
|
||||
if req.keep_prefill is not None:
|
||||
generation_kwargs['keep_prefill'] = req.keep_prefill
|
||||
|
||||
from modules.interrogate import vqa
|
||||
answer = vqa.interrogate(req.question, req.system, '', image, req.model)
|
||||
answer = vqa.interrogate(
|
||||
question=req.question,
|
||||
system_prompt=req.system,
|
||||
prompt='',
|
||||
image=image,
|
||||
model_name=req.model,
|
||||
prefill=req.prefill,
|
||||
thinking_mode=req.thinking_mode,
|
||||
generation_kwargs=generation_kwargs if generation_kwargs else None
|
||||
)
|
||||
# Return annotated image if requested and available
|
||||
annotated_b64 = None
|
||||
if req.include_annotated:
|
||||
|
||||
Reference in New Issue
Block a user