chore: import upstream snapshot with attribution
CI / Shell Format Check (push) Has been cancelled
CI / Check Ruby (3.4) (push) Has been cancelled
CI / CI Config (push) Has been cancelled
CI / Test on Node ${{ matrix.node }} and ${{ matrix.os }}${{ matrix.shard && format(' (shard {0}/3)', matrix.shard) || '' }} (push) Has been cancelled
CI / Build on Node ${{ matrix.node }} (push) Has been cancelled
CI / Style Check (push) Has been cancelled
CI / Generate Assets (push) Has been cancelled
CI / Check Python (3.14) (push) Has been cancelled
CI / Check Python (3.9) (push) Has been cancelled
CI / Build Docs (push) Has been cancelled
CI / Code Scan Action (push) Has been cancelled
CI / Site tests (push) Has been cancelled
CI / webui tests (push) Has been cancelled
CI / Run Integration Tests (push) Has been cancelled
CI / Run Smoke Tests (push) Has been cancelled
CI / Go Tests (push) Has been cancelled
CI / Share Test (push) Has been cancelled
CI / Redteam (Production API) (push) Has been cancelled
CI / Redteam (Staging API) (push) Has been cancelled
CI / GitHub Actions Lint (push) Has been cancelled
CI / Check Ruby (3.0) (push) Has been cancelled
release-please / release-please (push) Has been cancelled
release-please / build (push) Has been cancelled
release-please / publish-npm (push) Has been cancelled
release-please / publish-npm-backfill (push) Has been cancelled
release-please / docker (push) Has been cancelled
release-please / publish-code-scan-action (push) Has been cancelled
release-please / attest-code-scan-action (push) Has been cancelled
Deploy local.promptfoo.app / Deploy to Cloudflare Pages (push) Has been cancelled
Test and Publish Multi-arch Docker Image / test (push) Has been cancelled
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-amd64 platform:linux/amd64 runner:ubuntu-latest]) (push) Has been cancelled
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-arm64 platform:linux/arm64 runner:ubuntu-24.04-arm]) (push) Has been cancelled
Test and Publish Multi-arch Docker Image / merge-docker-digests (push) Has been cancelled
Test and Publish Multi-arch Docker Image / Attest Multi-arch Image (push) Has been cancelled
Validate Renovate Config / Validate Renovate Configuration (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-13 13:24:08 +08:00
commit 0d3cb498a3
5438 changed files with 1316560 additions and 0 deletions
@@ -0,0 +1,48 @@
# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json
description: Evals local Python provider smoke
prompts:
- 'Reply about {{topic}} with PONG and trace id {{trace_id}}.'
providers:
- id: file://./provider.py:call_api
label: evals-local-python-provider
config:
workers: 1
timeout: 30000
defaultTopic: py-config-topic
defaultTraceId: py-config-trace
tests:
- description: Python PONG response carries trace id
vars:
topic: smoke
trace_id: eval-py-123
assert:
- type: contains
value: PONG python
- type: regex
value: trace id eval-py-123
- type: javascript
value: output.includes(context.vars.topic)
metadata:
area: smoke
- description: Python PONG response carries alternate case metadata
vars:
topic: billing
trace_id: eval-py-456
assert:
- type: contains
value: topic=billing
- type: contains
value: trace id eval-py-456
metadata:
area: billing
- description: Python PONG response uses provider config defaults
assert:
- type: contains
value: topic=py-config-topic
- type: contains
value: trace id py-config-trace
metadata:
area: config-defaults
@@ -0,0 +1,28 @@
import json
def call_api(prompt: str, options: dict, context: dict) -> dict:
config = options.get("config", {}) if isinstance(options, dict) else {}
vars = context.get("vars", {}) if isinstance(context, dict) else {}
topic = vars.get("topic") or config.get("defaultTopic") or "unknown"
trace_id = vars.get("trace_id") or config.get("defaultTraceId") or "missing"
return {
"output": (f'PONG python topic={topic} trace id {trace_id} prompt="{prompt}"'),
"metadata": {
"topic": topic,
"trace_id": trace_id,
},
}
if __name__ == "__main__":
print(
json.dumps(
call_api(
"Reply about smoke with PONG and trace id eval-py-123.",
{},
{"vars": {"topic": "smoke", "trace_id": "eval-py-123"}},
),
sort_keys=True,
)
)