mirror of
https://github.com/lukaszraczylo/mcp-captcharesolver.git
synced 2026-10-14 00:57:55 +00:00
feat(llm): fake supports per-call response sequences
Add VisionResponses to Fake. Vision returns the element matching the call index (clamped to last beyond length), falling back to VisionResp when empty. Enables self-consistency voting tests.
This commit is contained in:
+14
-1
@@ -8,6 +8,7 @@ type Fake struct {
|
||||
TranscribeResp string
|
||||
VisionErr error
|
||||
TranscribeErr error
|
||||
VisionResponses []string
|
||||
VisionCalls []VisionCall
|
||||
TranscribeCalls []TranscribeCall
|
||||
}
|
||||
@@ -26,9 +27,21 @@ type TranscribeCall struct {
|
||||
Audio []byte
|
||||
}
|
||||
|
||||
// Vision implements Client.
|
||||
// Vision implements Client. When VisionResponses is non-empty it returns the
|
||||
// element matching the call index (clamped to the last for calls beyond the
|
||||
// slice length); otherwise it falls back to VisionResp.
|
||||
func (f *Fake) Vision(_ context.Context, prompt string, images []Image, opts Options) (string, error) {
|
||||
i := len(f.VisionCalls)
|
||||
f.VisionCalls = append(f.VisionCalls, VisionCall{Prompt: prompt, Images: images, Opts: opts})
|
||||
if f.VisionErr != nil {
|
||||
return "", f.VisionErr
|
||||
}
|
||||
if len(f.VisionResponses) > 0 {
|
||||
if i >= len(f.VisionResponses) {
|
||||
i = len(f.VisionResponses) - 1
|
||||
}
|
||||
return f.VisionResponses[i], nil
|
||||
}
|
||||
return f.VisionResp, f.VisionErr
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user