223 lines
5.3 KiB
Markdown
223 lines
5.3 KiB
Markdown
# AI Prompts Reference
|
|
|
|
This document describes the prompts used by each AI service. All prompts are optimized for token efficiency while maintaining accuracy.
|
|
|
|
## Design Principles
|
|
|
|
1. **Concise system prompts** - Under 100 tokens where possible
|
|
2. **Structured output** - JSON format for reliable parsing
|
|
3. **Clear field names** - Consistent naming across services
|
|
4. **Score ranges** - 0-1 for confidence, 1-10 for quality
|
|
|
|
## Filtering Prompt
|
|
|
|
**Purpose:** Evaluate projects against admin-defined criteria
|
|
|
|
### System Prompt
|
|
```
|
|
Project screening assistant. Evaluate each project against the criteria.
|
|
Return JSON: {"projects": [{project_id, meets_criteria: bool, confidence: 0-1, reasoning: str, quality_score: 1-10, spam_risk: bool}]}
|
|
Assess description quality and relevance objectively.
|
|
```
|
|
|
|
### User Prompt Template
|
|
```
|
|
CRITERIA: {criteria_text}
|
|
PROJECTS: {anonymized_project_array}
|
|
Evaluate each project against the criteria. Return JSON.
|
|
```
|
|
|
|
### Example Response
|
|
```json
|
|
{
|
|
"projects": [
|
|
{
|
|
"project_id": "P1",
|
|
"meets_criteria": true,
|
|
"confidence": 0.9,
|
|
"reasoning": "Project focuses on coral reef restoration, matching ocean conservation criteria",
|
|
"quality_score": 8,
|
|
"spam_risk": false
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Assignment Prompt
|
|
|
|
**Purpose:** Match jurors to projects by expertise
|
|
|
|
### System Prompt
|
|
```
|
|
Match jurors to projects by expertise. Return JSON assignments.
|
|
Each: {juror_id, project_id, confidence_score: 0-1, expertise_match_score: 0-1, reasoning: str (1-2 sentences)}
|
|
Distribute workload fairly. Avoid assigning jurors at capacity.
|
|
```
|
|
|
|
### User Prompt Template
|
|
```
|
|
JURORS: {anonymized_juror_array}
|
|
PROJECTS: {anonymized_project_array}
|
|
CONSTRAINTS: {N} reviews/project, max {M}/juror
|
|
EXISTING: {existing_assignments}
|
|
Return JSON: {"assignments": [...]}
|
|
```
|
|
|
|
### Example Response
|
|
```json
|
|
{
|
|
"assignments": [
|
|
{
|
|
"juror_id": "juror_001",
|
|
"project_id": "project_005",
|
|
"confidence_score": 0.85,
|
|
"expertise_match_score": 0.9,
|
|
"reasoning": "Juror expertise in marine biology aligns with coral restoration project"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Award Eligibility Prompt
|
|
|
|
**Purpose:** Determine project eligibility for special awards
|
|
|
|
### System Prompt
|
|
```
|
|
Award eligibility evaluator. Evaluate projects against criteria, return JSON.
|
|
Format: {"evaluations": [{project_id, eligible: bool, confidence: 0-1, reasoning: str}]}
|
|
Be objective. Base evaluation only on provided data. No personal identifiers in reasoning.
|
|
```
|
|
|
|
### User Prompt Template
|
|
```
|
|
CRITERIA: {criteria_text}
|
|
PROJECTS: {anonymized_project_array}
|
|
Evaluate eligibility for each project.
|
|
```
|
|
|
|
### Example Response
|
|
```json
|
|
{
|
|
"evaluations": [
|
|
{
|
|
"project_id": "P3",
|
|
"eligible": true,
|
|
"confidence": 0.95,
|
|
"reasoning": "Project is based in Italy and focuses on Mediterranean biodiversity"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Mentor Matching Prompt
|
|
|
|
**Purpose:** Recommend mentors for projects
|
|
|
|
### System Prompt
|
|
```
|
|
Match mentors to projects by expertise. Return JSON.
|
|
Format for each project: {"matches": [{project_id, mentor_matches: [{mentor_index, confidence_score: 0-1, expertise_match_score: 0-1, reasoning: str}]}]}
|
|
Rank by suitability. Consider expertise alignment and availability.
|
|
```
|
|
|
|
### User Prompt Template
|
|
```
|
|
PROJECTS:
|
|
P1: Category=STARTUP, Issue=HABITAT_RESTORATION, Tags=[coral, reef], Desc=Project description...
|
|
P2: ...
|
|
|
|
MENTORS:
|
|
0: Expertise=[marine biology, coral], Availability=2/5
|
|
1: Expertise=[business development], Availability=0/3
|
|
...
|
|
|
|
For each project, rank top {N} mentors.
|
|
```
|
|
|
|
### Example Response
|
|
```json
|
|
{
|
|
"matches": [
|
|
{
|
|
"project_id": "P1",
|
|
"mentor_matches": [
|
|
{
|
|
"mentor_index": 0,
|
|
"confidence_score": 0.92,
|
|
"expertise_match_score": 0.95,
|
|
"reasoning": "Marine biology expertise directly matches coral restoration focus"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Anonymized Data Structure
|
|
|
|
All projects sent to AI use this structure:
|
|
|
|
```typescript
|
|
interface AnonymizedProjectForAI {
|
|
project_id: string // P1, P2, etc.
|
|
title: string // Sanitized (PII removed)
|
|
description: string // Truncated + PII stripped
|
|
category: string | null // STARTUP | BUSINESS_CONCEPT
|
|
ocean_issue: string | null
|
|
country: string | null
|
|
region: string | null
|
|
institution: string | null
|
|
tags: string[]
|
|
founded_year: number | null
|
|
team_size: number
|
|
has_description: boolean
|
|
file_count: number
|
|
file_types: string[]
|
|
wants_mentorship: boolean
|
|
submission_source: string
|
|
submitted_date: string | null // YYYY-MM-DD
|
|
}
|
|
```
|
|
|
|
### What Gets Stripped
|
|
- Team/company names
|
|
- Email addresses
|
|
- Phone numbers
|
|
- External URLs
|
|
- Real project/user IDs
|
|
- Internal comments
|
|
|
|
---
|
|
|
|
## Token Optimization Tips
|
|
|
|
1. **Batch projects** - Process 15-20 per request
|
|
2. **Truncate descriptions** - 300-500 chars based on task
|
|
3. **Use abbreviated fields** - `desc` vs `description`
|
|
4. **Compress constraints** - Inline in prompt
|
|
5. **Request specific fields** - Only what you need
|
|
|
|
## Prompt Versioning
|
|
|
|
| Service | Version | Last Updated |
|
|
|---------|---------|--------------|
|
|
| Filtering | 2.0 | 2025-01 |
|
|
| Assignment | 2.0 | 2025-01 |
|
|
| Award Eligibility | 2.0 | 2025-01 |
|
|
| Mentor Matching | 2.0 | 2025-01 |
|
|
|
|
## See Also
|
|
|
|
- [AI System Architecture](./ai-system.md)
|
|
- [AI Services Reference](./ai-services.md)
|
|
- [AI Configuration Guide](./ai-configuration.md)
|