35 lines
1.6 KiB
Python
35 lines
1.6 KiB
Python
from django.db import models
|
|
|
|
class AIProvider(models.Model):
|
|
"""
|
|
Stores different AI providers (OpenAI, DeepSeek, Cohere, etc.).
|
|
"""
|
|
name = models.CharField(max_length=100, unique=True, help_text="Name of the AI provider (e.g., OpenAI, DeepSeek)")
|
|
description = models.TextField(blank=True, null=True, help_text="Description of the provider and its capabilities.")
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
from django.db import models
|
|
from pxy_neo4j.models import Neo4jProfile # Import Neo4jProfile
|
|
|
|
class AIAssistant(models.Model):
|
|
"""
|
|
Represents a LangChain-based AI assistant configuration.
|
|
"""
|
|
name = models.CharField(max_length=100, unique=True, help_text="Unique name of the assistant.")
|
|
description = models.TextField(blank=True, null=True, help_text="System role or behavior description.")
|
|
model_name = models.CharField(max_length=100, help_text="Name of the AI model (e.g., gpt-4, deepseek-chat, mistral-7b).")
|
|
provider = models.ForeignKey(AIProvider, on_delete=models.CASCADE, help_text="The AI provider for this assistant.")
|
|
api_key = models.CharField(max_length=200, help_text="API key for accessing the AI provider.")
|
|
uses_graph = models.BooleanField(default=False, help_text="Indicates if this assistant should use graph-based responses.")
|
|
neo4j_profile = models.ForeignKey(Neo4jProfile, on_delete=models.SET_NULL, null=True, blank=True, help_text="Associated Neo4j profile for querying data.")
|
|
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
updated_at = models.DateTimeField(auto_now=True)
|
|
|
|
def __str__(self):
|
|
return f"{self.name} ({self.model_name})"
|
|
|
|
|