santanche's picture
refactor (model): replacing phi3 by phi4-mini
f369a7d
# Pub/Sub Multi-Agent System - Example Configurations
**Note**: This deployment includes **phi4-mini** (general purpose), **MedAIBase/MedGemma1.5:4b** (medical/healthcare), and **deepseek-coder:1.3b** (coding) models.
**Important**: Use `{question}` in prompts to access the user's question, `{schema}` for database schema, and `{input}` for messages from subscribed topics (all case insensitive).
## Example 1: Natural Language to SQL Pipeline (using phi4-mini)
### Agent 1: Question Analyzer
- **Title**: Question Analyzer
- **Prompt**:
```
Given this database schema:
{schema}
User question: {question}
Analyze the question and identify:
1. What tables are needed
2. What columns are needed
3. What the user wants to retrieve
Respond with a clear analysis.
```
- **Model**: phi4-mini
- **Subscribe Topic**: START
- **Publish Topic**: QUESTION_ANALYZED
### Agent 2: SQL Generator
- **Title**: SQL Generator
- **Prompt**:
```
Based on this analysis:
{input}
Database schema:
{schema}
Original question: {question}
Generate a SQL query that answers the user's question.
Return ONLY the SQL query, no explanation.
```
- **Model**: phi4-mini
- **Subscribe Topic**: QUESTION_ANALYZED
- **Publish Topic**: SQL_GENERATED
### Agent 3: SQL Validator
- **Title**: SQL Validator
- **Prompt**:
```
Check if this SQL query is valid and correct:
{input}
Schema:
{schema}
If valid, return "VALID: " followed by the query.
If invalid, return "INVALID: " followed by the corrected query.
```
- **Model**: phi4-mini
- **Subscribe Topic**: SQL_GENERATED
- **Publish Topic**: FINAL
---
## Example 2: Medical Symptom Analysis (Using MedGemma)
**User Question**: "Patient has fever, cough, and shortness of breath for 3 days"
### Agent 1: Symptom Extractor
- **Title**: Symptom Extractor
- **Prompt**:
```
Patient report: {question}
Extract all symptoms mentioned in the patient report.
List them clearly and concisely.
```
- **Model**: MedAIBase/MedGemma1.5:4b
- **Subscribe Topic**: START
- **Publish Topic**: SYMPTOMS_EXTRACTED
### Agent 2: Preliminary Assessment
- **Title**: Preliminary Assessment
- **Prompt**:
```
Based on these symptoms:
{input}
Provide a preliminary medical assessment including:
1. Possible conditions
2. Severity level
3. Recommended next steps
Note: This is for educational purposes only, not medical advice.
```
- **Model**: MedAIBase/MedGemma1.5:4b
- **Subscribe Topic**: SYMPTOMS_EXTRACTED
- **Publish Topic**: FINAL
- **Subscribe Topic**: SYMPTOMS_EXTRACTED
- **Publish Topic**: ASSESSMENT_COMPLETE
---
## Example 3: Code Review and Debugging (Using DeepSeek Coder)
**User Question**: "Review this Python function for bugs"
**Data Source:**
- Label: `Code`
- Content:
```python
def calculate_average(numbers):
total = 0
for num in numbers:
total += num
return total / len(numbers)
```
### Agent 1: Bug Detector
- **Title**: Bug Detector
- **Prompt**:
```
Review this code for bugs:
{Code}
Identify any bugs, edge cases, or potential issues.
```
- **Model**: deepseek-coder:1.3b
- **Subscribe Topic**: START
- **Publish Topic**: BUGS_FOUND
### Agent 2: Code Fixer
- **Title**: Code Fixer
- **Prompt**:
```
Based on these identified issues:
{input}
Original code:
{Code}
Provide the corrected code with fixes for all issues.
```
- **Model**: deepseek-coder:1.3b
- **Subscribe Topic**: BUGS_FOUND
- **Publish Topic**: FINAL
---
## Example 4: Research Paper Analysis
### Agent 1: Abstract Analyzer
- **Title**: Abstract Analyzer
- **Prompt**:
```
Paper abstract: {input}
Analyze the abstract and extract:
1. Main research question
2. Methodology
3. Key findings
```
- **Model**: phi4-mini
- **Subscribe Topic**: START
- **Publish Topic**: ABSTRACT_ANALYZED
### Agent 2: Methodology Reviewer
- **Title**: Methodology Reviewer
- **Prompt**:
```
Based on this analysis:
{input}
Evaluate the research methodology:
1. Is it appropriate for the research question?
2. What are the strengths?
3. What are potential limitations?
```
- **Model**: phi4-mini
- **Subscribe Topic**: ABSTRACT_ANALYZED
- **Publish Topic**: METHODOLOGY_REVIEWED
### Agent 3: Summary Generator
- **Title**: Summary Generator
- **Prompt**:
```
Based on this methodology review:
{input}
Generate a comprehensive summary of the paper suitable for a literature review.
```
- **Model**: phi4-mini
- **Subscribe Topic**: METHODOLOGY_REVIEWED
- **Publish Topic**: SUMMARY_COMPLETE
---
## Example 5: Content Moderation Pipeline (using phi4-mini)
### Agent 1: Content Classifier
- **Title**: Content Classifier
- **Prompt**:
```
Content: {input}
Classify this content into one of these categories:
- SAFE
- NEEDS_REVIEW
- INAPPROPRIATE
Provide classification and brief reasoning.
```
- **Model**: phi4-mini
- **Subscribe Topic**: START
- **Publish Topic**: CLASSIFIED
### Agent 2: Detailed Review (only for NEEDS_REVIEW)
- **Title**: Detailed Reviewer
- **Prompt**:
```
Classification result: {input}
If the content was marked as NEEDS_REVIEW, provide:
1. Specific concerns
2. Severity level (low/medium/high)
3. Recommended action
If not NEEDS_REVIEW, just respond "NO REVIEW NEEDED"
```
- **Model**: phi4-mini
- **Subscribe Topic**: CLASSIFIED
- **Publish Topic**: REVIEW_COMPLETE
---
## Example 5: Medical Symptom Analysis (phi4-mini can handle basic medical tasks)
### Agent 1: Symptom Categorizer
- **Title**: Symptom Categorizer
- **Prompt**:
```
Patient symptoms: {input}
Categorize these symptoms by body system:
- Cardiovascular
- Respiratory
- Neurological
- Gastrointestinal
- Other
List each symptom under its appropriate category.
```
- **Model**: phi4-mini
- **Subscribe Topic**: START
- **Publish Topic**: SYMPTOMS_CATEGORIZED
### Agent 2: Diagnostic Reasoning
- **Title**: Diagnostic Reasoning
- **Prompt**:
```
Categorized symptoms:
{input}
Based on these symptoms, provide:
1. Most likely differential diagnoses (top 3)
2. Supporting evidence for each
3. Recommended diagnostic tests
Note: This is for educational purposes only.
```
- **Model**: phi4-mini
- **Subscribe Topic**: SYMPTOMS_CATEGORIZED
- **Publish Topic**: DIAGNOSIS_COMPLETE
---
## Tips for Creating Effective Agents
1. **Clear Subscribe/Publish Topics**: Use descriptive names like "SQL_GENERATED" not just "STEP2"
2. **Prompt Placeholders**:
- Use `{question}` for the user's input question
- Use `{input}` for the message from the subscribed topic
- Use `{schema}` to access the database schema
- All three can be used together in any prompt
3. **Model Selection**:
- **phi4-mini**: Versatile general-purpose model - text analysis, SQL, reasoning, classification
- **cniongolo/biomistral**: Medical and scientific tasks - diagnosis, clinical reasoning, biomedical analysis
4. **Final Results**:
- Publish to topic "FINAL" to display results in the Final Result box
- Only the last agent in your chain should publish to FINAL
4. **Chain Design**:
- Start simple with 2-3 agents
- Each agent should have ONE clear purpose
- Test each agent individually first
5. **Error Handling**:
- If an agent has no subscribers for its publish topic, the chain stops
- Make sure START has at least one subscriber
- Check that all topics form a connected chain
6. **Debugging**:
- Watch the execution log carefully
- Check which topics have subscribers
- Verify message flow through the bus