Overview
The Data Analyst component is an AI-powered chatbot designed specifically for educators. It provides intelligent insights into student engagement, performance metrics, and learning patterns. Educators can ask natural language questions about their students’ study habits, identify areas where students may need additional support, and receive personalized recommendations to improve learning outcomes.Creating a Data Analyst Component
import StudyfetchSDK from '@studyfetch/sdk';
const client = new StudyfetchSDK({
apiKey: 'your-api-key',
baseURL: 'https://studyfetchapi.com',
});
const dataAnalystComponent = await client.v1.components.create({
name: 'Student Performance Analyst',
type: 'data-analyst',
config: {
materials: ['mat-123', 'mat-456'], // Course materials with student activity data
folders: ['folder-789'],
model: 'gpt-4o-mini-2024-07-18',
systemPrompt: 'You are an AI assistant for educators. Help analyze student usage patterns, performance metrics, and provide actionable recommendations to improve learning outcomes. Focus on identifying struggling students, engagement trends, and suggesting personalized interventions.',
temperature: 0.3, // Lower temperature for more precise analysis
maxTokens: 4096
}
});
console.log('Data Analyst component created:', dataAnalystComponent._id);
from studyfetch_sdk import StudyfetchSDK
client = StudyfetchSDK(
api_key="your-api-key",
base_url="https://studyfetchapi.com",
)
data_analyst_component = client.v1.components.create(
name="Student Performance Analyst",
type="data-analyst",
config={
"materials": ["mat-123", "mat-456"], # Course materials with student activity data
"folders": ["folder-789"],
"model": "gpt-4o-mini-2024-07-18",
"systemPrompt": "You are an AI assistant for educators. Help analyze student usage patterns, performance metrics, and provide actionable recommendations to improve learning outcomes. Focus on identifying struggling students, engagement trends, and suggesting personalized interventions.",
"temperature": 0.3, # Lower temperature for more precise analysis
"maxTokens": 4096
}
)
print(f"Data Analyst component created: {data_analyst_component._id}")
import com.studyfetch.javasdk.client.StudyfetchSdkClient;
import com.studyfetch.javasdk.client.okhttp.StudyfetchSdkOkHttpClient;
import com.studyfetch.javasdk.models.v1.components.ComponentResponse;
import com.studyfetch.javasdk.models.v1.components.ComponentCreateParams;
import java.util.List;
public class CreateDataAnalystComponent {
public static void main(String[] args) {
StudyfetchSdkClient client = StudyfetchSdkOkHttpClient.builder()
.fromEnv()
.baseUrl("https://studyfetchapi.com")
.build();
ComponentCreateParams params = ComponentCreateParams.builder()
.name("Student Performance Analyst")
.type(ComponentCreateParams.Type.DATA_ANALYST)
.config(ComponentCreateParams.Config.DataAnalystConfigDto.builder()
.materials(List.of("mat-123", "mat-456")) // Course materials with student activity data
.folders(List.of("folder-789"))
.model("gpt-4o-mini-2024-07-18")
.systemPrompt("You are an AI assistant for educators. Help analyze student usage patterns, performance metrics, and provide actionable recommendations to improve learning outcomes. Focus on identifying struggling students, engagement trends, and suggesting personalized interventions.")
.temperature(0.3) // Lower temperature for more precise analysis
.maxTokens(4096)
.build())
.build();
ComponentResponse component = client.v1().components().create(params);
System.out.println("Data Analyst component created: " + component._id());
}
}
using StudyfetchSDK;
using StudyfetchSDK.Models.V1.Components;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
public class CreateDataAnalystComponent
{
public static async Task CreateDataAnalyst()
{
var client = new StudyfetchSDKClient()
{
APIKey = Environment.GetEnvironmentVariable("STUDYFETCH_API_KEY"),
BaseUrl = new Uri("https://studyfetchapi.com")
};
var dataAnalystComponent = await client.V1.Components.Create(new()
{
Name = "Student Performance Analyst",
Type = StudyfetchSDK.Models.V1.Components.ComponentCreateParamsProperties.Type.DataAnalyst,
Config = new StudyfetchSDK.Models.V1.Components.ComponentCreateParamsProperties.ConfigProperties.DataAnalystConfigDto()
{
Model = "gemini-2.5-flash",
Materials = new List<string> { "mat-123" }
}
});
Console.WriteLine($"Data Analyst component created: {dataAnalystComponent._ID}");
}
}
Configuration Parameters
Name of the data analyst component
Must be
"data-analyst"Data analyst configuration object
Show Configuration Properties
Show Configuration Properties
Array of material IDs containing student activity and performance data
Array of folder IDs containing course materials with student data
AI model to use for analysis
Custom instructions for the AI assistant (default focuses on student analytics for educators)
Controls randomness in responses (0-1, lower is more precise)
Maximum length of analysis responses
Response
{
"_id": "comp_abc123",
"name": "Student Performance Analyst",
"type": "data_analyst",
"status": "active",
"config": {
"materials": ["mat-123", "mat-456"],
"folders": ["folder-789"],
"model": "gpt-4o-mini-2024-07-18",
"systemPrompt": "You are an AI assistant for educators. Help analyze student usage patterns, performance metrics, and provide actionable recommendations to improve learning outcomes. Focus on identifying struggling students, engagement trends, and suggesting personalized interventions.",
"temperature": 0.3,
"maxTokens": 4096
},
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-01-15T10:00:00Z",
"organizationId": "org_456def",
"statistics": {
"totalSessions": 0,
"totalAnalyses": 0,
"averageSessionDuration": null
}
}
Embedding This Component
Once you’ve created a Data Analyst component, you can embed it on your website using the embedding API.Generate Embed URL
const embedResponse = await client.v1.components.generateEmbed(dataAnalystComponent._id, {
// User tracking
userId: 'user-456',
studentName: 'Jane Smith', // Student name for display
groupIds: ['class-101', 'class-102'],
sessionId: 'session-789',
// Dimensions
width: '100%',
height: '700px',
// Token expiry
expiryHours: 24
});
embed_response = client.v1.components.generateEmbed(
component_id=data_analyst_component._id,
userId="user-456",
student_name="Jane Smith", # Student name for display
groupIds=["class-101", "class-102"],
sessionId="session-789",
width="100%",
height="700px",
expiryHours=24
)
import com.studyfetch.javasdk.client.StudyfetchSdkClient;
import com.studyfetch.javasdk.client.okhttp.StudyfetchSdkOkHttpClient;
import com.studyfetch.javasdk.models.v1.components.ComponentGenerateEmbedParams;
import com.studyfetch.javasdk.models.v1.components.ComponentGenerateEmbedResponse;
StudyfetchSdkClient client = StudyfetchSdkOkHttpClient.builder()
.fromEnv()
.baseUrl("https://studyfetchapi.com")
.build();
ComponentGenerateEmbedParams params = ComponentGenerateEmbedParams.builder()
.id(dataAnalystComponent._id())
// User tracking
.userId("user-456")
.studentName("Jane Smith") // Student name for display
.groupIds(List.of("class-101", "class-102"))
.sessionId("session-789")
// Dimensions
.width("100%")
.height("700px")
// Token expiry
.expiryHours(24)
.build();
ComponentGenerateEmbedResponse embedResponse = client.v1().components()
.generateEmbed(params);
using StudyfetchSDK;
using StudyfetchSDK.Models.V1.Components;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
public class GenerateDataAnalystEmbed
{
public static async Task GenerateEmbed()
{
var client = new StudyfetchSDKClient()
{
APIKey = Environment.GetEnvironmentVariable("STUDYFETCH_API_KEY"),
BaseUrl = new Uri("https://studyfetchapi.com")
};
var embedResponse = await client.V1.Components.GenerateEmbed(new()
{
ID = "component_123abc", // Replace with your component ID
UserID = "user-456",
StudentName = "Jane Smith", // Student name for display
GroupIDs = new List<string> { "class-101", "class-102" },
Width = "100%",
Height = "600px"
});
Console.WriteLine($"Embed URL: {embedResponse.EmbedURL}");
Console.WriteLine($"Token: {embedResponse.Token}");
}
}
Embed in Your HTML
<iframe
src="https://embed.studyfetch.com/component/comp_abc123?token=..."
width="100%"
height="700px"
frameborder="0"
allow="clipboard-write"
style="border: 1px solid #e5e5e5; border-radius: 8px;">
</iframe>