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})"