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
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:
@@ -0,0 +1,86 @@
|
||||
# integration-slack (Slack Integration)
|
||||
|
||||
This example shows how to collect human feedback via Slack for evaluating AI responses.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
1. **Install the Slack Web API** (optional dependency):
|
||||
|
||||
```bash
|
||||
npm install @slack/web-api
|
||||
```
|
||||
|
||||
2. **Create a Slack App**:
|
||||
- Go to https://api.slack.com/apps
|
||||
- Click "Create New App" → "From scratch"
|
||||
- Give it a name (e.g., "Promptfoo Evaluator")
|
||||
- Select your workspace
|
||||
|
||||
3. **Add Bot Token Scopes**:
|
||||
- Go to "OAuth & Permissions"
|
||||
- Under "Bot Token Scopes", add:
|
||||
- `chat:write`
|
||||
- `channels:history`
|
||||
- `channels:read`
|
||||
- `groups:history`
|
||||
- `groups:read`
|
||||
- `im:history`
|
||||
- `im:read`
|
||||
|
||||
4. **Install to Workspace**:
|
||||
- Click "Install to Workspace"
|
||||
- Copy the Bot User OAuth Token (starts with `xoxb-`)
|
||||
|
||||
5. **Set Environment Variable**:
|
||||
|
||||
```bash
|
||||
export SLACK_BOT_TOKEN=xoxb-your-token-here
|
||||
```
|
||||
|
||||
6. **Invite Bot to Channel**:
|
||||
- In Slack, go to your test channel
|
||||
- Type `/invite @your-bot-name`
|
||||
|
||||
## Running the Example
|
||||
|
||||
You can run this example with:
|
||||
|
||||
```bash
|
||||
npx promptfoo@latest init --example integration-slack
|
||||
cd integration-slack
|
||||
```
|
||||
|
||||
Then update the channel ID in `promptfooconfig.yaml` and run:
|
||||
|
||||
```bash
|
||||
npx promptfoo@latest eval
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The example compares AI responses with human feedback:
|
||||
|
||||
```yaml
|
||||
providers:
|
||||
- openai:gpt-4o-mini # AI model
|
||||
- slack:C_YOUR_CHANNEL_ID # Human feedback
|
||||
```
|
||||
|
||||
When you run the evaluation:
|
||||
|
||||
1. The AI model generates responses
|
||||
2. The Slack provider posts prompts to your channel
|
||||
3. Humans respond in Slack
|
||||
4. Results are collected and compared
|
||||
|
||||
## Finding Your Channel ID
|
||||
|
||||
In Slack:
|
||||
|
||||
1. Click the channel name at the top
|
||||
2. Click "About" tab
|
||||
3. Look for "Channel ID" at the bottom
|
||||
|
||||
## Advanced Usage
|
||||
|
||||
For more advanced configurations (specific user feedback, timeout settings, etc.), see the [Slack provider documentation](https://promptfoo.dev/docs/providers/slack).
|
||||
@@ -0,0 +1,28 @@
|
||||
# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json
|
||||
description: Human feedback via Slack
|
||||
|
||||
# Prerequisites:
|
||||
# 1. Install the Slack Web API: npm install @slack/web-api
|
||||
# 2. Set SLACK_BOT_TOKEN environment variable
|
||||
# 3. Replace C_YOUR_CHANNEL_ID with your actual Slack channel ID
|
||||
|
||||
prompts:
|
||||
- 'Write a haiku about {{topic}}'
|
||||
- 'Explain {{concept}} in simple terms'
|
||||
|
||||
providers:
|
||||
# AI model for comparison
|
||||
- openai:chat:gpt-5.4-nano
|
||||
|
||||
# Human feedback via Slack
|
||||
- slack:C_YOUR_CHANNEL_ID # Replace with your channel ID
|
||||
|
||||
tests:
|
||||
- vars:
|
||||
topic: coffee
|
||||
- vars:
|
||||
topic: programming
|
||||
- vars:
|
||||
concept: machine learning
|
||||
- vars:
|
||||
concept: quantum computing
|
||||
Reference in New Issue
Block a user