Initial commit
This commit is contained in:
8
docs/Specialists/_category_.json
Normal file
8
docs/Specialists/_category_.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"label": "Specialists",
|
||||
"position": 3,
|
||||
"link": {
|
||||
"type": "generated-index",
|
||||
"description": "Learn about the Specialists enabling intelligent interactions and task execution"
|
||||
}
|
||||
}
|
||||
156
docs/Specialists/q_a_rag_specialist.md
Normal file
156
docs/Specialists/q_a_rag_specialist.md
Normal file
@@ -0,0 +1,156 @@
|
||||
---
|
||||
id: qa-rag-specialist
|
||||
title: Q&A RAG Specialist
|
||||
description: Understand how to configure and use the Q&A RAG Specialist for intelligent conversations
|
||||
sidebar_label: Q&A RAG Specialist
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Q&A RAG Specialist
|
||||
|
||||
## Overview
|
||||
|
||||
The Q&A RAG Specialist enables intelligent question-answering interactions using your organization's specific information stored in Evie's Library. Whether supporting customers on your website or helping employees access internal knowledge, this specialist provides accurate, context-aware responses based on your documented information.
|
||||
|
||||
## Structure
|
||||
|
||||
The Q&A RAG Specialist extends the base Specialist with specific configuration, arguments, and results tailored for question-answering:
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class Specialist {
|
||||
+id: Integer
|
||||
+name: String
|
||||
+description: Text
|
||||
+type: String
|
||||
+configuration: JSON
|
||||
+arguments: JSON
|
||||
+results: JSON
|
||||
}
|
||||
|
||||
class QARagSpecialist {
|
||||
+configuration
|
||||
specialist_context: String
|
||||
temperature: Float
|
||||
+arguments
|
||||
language: String
|
||||
query: String
|
||||
+results
|
||||
detailed_query: String
|
||||
answer: String
|
||||
citations: Array
|
||||
insufficient_info: Boolean
|
||||
}
|
||||
|
||||
Specialist <|-- QARagSpecialist
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### Specialist Context
|
||||
The context defines the specialist's identity and behavior. A well-structured context typically includes:
|
||||
|
||||
1. **Identity**
|
||||
- The specialist's name
|
||||
- Role or position (e.g., company spokesperson)
|
||||
|
||||
2. **Reference Handling**
|
||||
- How your company/product names might appear
|
||||
- Common variations or abbreviations
|
||||
- How to handle self-references
|
||||
|
||||
3. **Domain Clarity**
|
||||
- Clear description of the business domain
|
||||
- Disambiguation from similar companies/products
|
||||
|
||||
Example context:
|
||||
```json
|
||||
{
|
||||
"specialist_context": "You are Evie, the main spokesperson for 'Ask Eve AI'.
|
||||
'Ask Eve AI' can be spelled in different ways (e.g. askeveai), can be
|
||||
shortened to Evie, and can be referred to as 'you' (as you share the
|
||||
same name as the product, and actually are an impersonation of the
|
||||
product Evie). Ask Eve AI sells an advanced SAAS platform, also called
|
||||
Evie, that enables companies to easily implement business cases based
|
||||
on generative AI, mainly LLMs."
|
||||
}
|
||||
```
|
||||
|
||||
### Temperature
|
||||
Controls the balance between creativity and precision in responses:
|
||||
|
||||
- **Range**: 0 to 1
|
||||
- **Default**: 0.3
|
||||
- **Effect**:
|
||||
- Lower values (closer to 0): More conservative, strictly adhering to source content
|
||||
- Higher values (closer to 1): More creative, potentially introducing more variation
|
||||
- Adjust based on your needs:
|
||||
- Increase if responses feel too rigid
|
||||
- Decrease if responses take too many liberties with the source material
|
||||
- Note: Higher temperatures increase the risk of hallucinations
|
||||
|
||||
## Arguments
|
||||
|
||||
Arguments required for each interaction:
|
||||
|
||||
1. **language**
|
||||
- Specifies the desired response language
|
||||
- Evie intelligently handles multi-language content
|
||||
- Can find relevant information across language barriers
|
||||
- Note: While Evie translates answers, it is not a document translation service
|
||||
|
||||
2. **query**
|
||||
- The actual question from the end user
|
||||
- Will be processed considering session context
|
||||
|
||||
## Results
|
||||
|
||||
The specialist returns structured results for each interaction:
|
||||
|
||||
1. **detailed_query**
|
||||
- Enhanced version of the original query
|
||||
- Incorporates context from previous interactions
|
||||
- Helps maintain conversation coherence
|
||||
|
||||
2. **answer**
|
||||
- The specialist's response to the query
|
||||
- Based on retrieved information
|
||||
- Formulated according to configuration settings
|
||||
|
||||
3. **citations**
|
||||
- References to specific embeddings used
|
||||
- Traceable back to source document versions
|
||||
- Enables verification and source tracking
|
||||
|
||||
4. **insufficient_info**
|
||||
- Boolean flag indicating information adequacy
|
||||
- `true` when library content insufficient for proper response
|
||||
- Helps monitor answer quality and identify knowledge gaps
|
||||
|
||||
## Integration Notes
|
||||
|
||||
While the specialist provides structured arguments and results, these technical details are typically hidden from end users. Client interfaces (such as chat widgets) handle:
|
||||
|
||||
- Submitting properly formatted arguments
|
||||
- Receiving and processing results
|
||||
- Presenting information in a user-friendly format
|
||||
|
||||
This abstraction allows for:
|
||||
- Clean user experiences
|
||||
- Consistent interaction patterns
|
||||
- Technical flexibility for integrators
|
||||
|
||||
## Multi-language Capabilities
|
||||
|
||||
The Q&A RAG Specialist features advanced language handling:
|
||||
|
||||
- Finds relevant content across languages
|
||||
- Provides responses in requested language
|
||||
- Maintains context across language switches
|
||||
- Intelligently translates responses while preserving meaning
|
||||
|
||||
For example, English questions can receive relevant information from Dutch documents, with responses properly formulated in English.
|
||||
|
||||
---
|
||||
|
||||
The next sections cover best practices, common use cases, and integration examples.
|
||||
155
docs/Specialists/specialists_introduction.md
Normal file
155
docs/Specialists/specialists_introduction.md
Normal file
@@ -0,0 +1,155 @@
|
||||
---
|
||||
id: specialists
|
||||
title: Understanding Specialists - Introduction
|
||||
description: Learn how specialists use Evie's Library to execute specific tasks
|
||||
sidebar_label: Specialists Intro
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Understanding Specialists - Introduction
|
||||
|
||||
## Overview
|
||||
|
||||
Specialists are powerful components in Evie's ecosystem that perform specific activities using information from Evie's Library. Think of specialists as expert assistants, each trained for particular tasks - from answering questions to filling templates or providing specialized support.
|
||||
|
||||
## How Specialists Work
|
||||
|
||||
Every specialist follows a structured approach:
|
||||
|
||||
1. **Information Gathering**: Using one or more retrievers, specialists search Evie's Library for relevant information
|
||||
2. **Information Processing**: Retrieved information is processed according to the specialist's specific algorithm
|
||||
3. **Task Execution**: The specialist performs its designated task using:
|
||||
- Retrieved information
|
||||
- Its configuration settings
|
||||
- Provided arguments
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[User Request] --> B[Specialist]
|
||||
B --> C{Process Arguments}
|
||||
C --> D[Evaluate Specialist Arguments]
|
||||
D --> E[Push Arguments to Retrievers]
|
||||
E --> F[Search Library using Retrievers]
|
||||
F --> G[Combine Retrieved Information]
|
||||
G --> H[Execute Specialist Algorithm]
|
||||
H --> I[Return Results]
|
||||
|
||||
style A fill:#9c2d66,stroke:#333,stroke-width:2px
|
||||
style B fill:#423372,stroke:#333,stroke-width:2px
|
||||
style I fill:#9c2d66,stroke:#333,stroke-width:2px
|
||||
```
|
||||
|
||||
### Key Components
|
||||
|
||||
The relationship between specialists and other components is shown in this diagram:
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class Specialist {
|
||||
+id: Integer
|
||||
+name: String
|
||||
+description: Text
|
||||
+type: String
|
||||
+configuration: JSON
|
||||
+arguments: JSON
|
||||
+results: JSON
|
||||
}
|
||||
|
||||
class Retriever {
|
||||
+id: Integer
|
||||
+name: String
|
||||
+catalog_id: Integer
|
||||
+type: String
|
||||
+configuration: JSON
|
||||
}
|
||||
|
||||
Specialist "*" -- "*" Retriever : uses
|
||||
note for Specialist "Each specialist can use multiple retrievers"
|
||||
note for Retriever "Each retriever can be used by multiple specialists"
|
||||
```
|
||||
|
||||
### Sessions and Interactions
|
||||
|
||||
Each specialist operates within sessions, managing interactions as shown here:
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class ChatSession {
|
||||
+id: Integer
|
||||
+session_id: String
|
||||
+session_start: DateTime
|
||||
+session_end: DateTime
|
||||
}
|
||||
|
||||
class Interaction {
|
||||
+id: Integer
|
||||
+chat_session_id: Integer
|
||||
+specialist_id: Integer
|
||||
+specialist_arguments: JSON
|
||||
+specialist_results: JSON
|
||||
+question_at: DateTime
|
||||
+answer_at: DateTime
|
||||
}
|
||||
|
||||
class Specialist {
|
||||
+id: Integer
|
||||
+name: String
|
||||
+type: String
|
||||
}
|
||||
|
||||
ChatSession "1" -- "*" Interaction
|
||||
Specialist "1" -- "*" Interaction
|
||||
```
|
||||
|
||||
## Working with Specialists
|
||||
|
||||
### Configuration & Arguments
|
||||
|
||||
Specialists use three key data structures:
|
||||
|
||||
1. **Configuration**
|
||||
- Fixed parameters that remain constant during all interactions
|
||||
- Defines core behavior settings (e.g., inference parameters)
|
||||
- Set during specialist creation
|
||||
|
||||
2. **Arguments**
|
||||
- Variable parameters passed during each interaction
|
||||
- Can change between interactions within a session
|
||||
- Example: questions or specific task parameters
|
||||
|
||||
3. **Results**
|
||||
- Output structure returned after each interaction
|
||||
- Contains the specialist's response or task output
|
||||
- Format depends on specialist type
|
||||
|
||||
### Sessions
|
||||
|
||||
- Each session is dedicated to one specialist
|
||||
- Sessions maintain context across multiple interactions
|
||||
- Session boundaries are specialist-specific
|
||||
- For Q&A specialists: typically aligned with client communication sessions
|
||||
- For task-based specialists: may be bound by task completion
|
||||
|
||||
### Argument Inheritance
|
||||
|
||||
Specialists implement an intelligent argument inheritance mechanism:
|
||||
|
||||
1. Arguments can be defined at both specialist and retriever levels
|
||||
2. When argument names match:
|
||||
- Specialist arguments take precedence
|
||||
- Retriever-specific values can override this if explicitly set
|
||||
3. This allows for:
|
||||
- Consistent argument handling across retrievers
|
||||
- Flexibility when needed for specific retrievers
|
||||
|
||||
## Current Specialist Types
|
||||
|
||||
Currently, the main specialist type is the RAG (Retrieval-Augmented Generation) Specialist, focused on question-answering using library content. Additional specialist types are being developed for:
|
||||
|
||||
- Sales support
|
||||
- Template filling
|
||||
- Specialized customer support
|
||||
- Document analysis
|
||||
- And more...
|
||||
|
||||
Detailed documentation for each specialist type is available in their respective sections.
|
||||
Reference in New Issue
Block a user