Data Models
Ayushma's data models, defined in the ayushma/models directory, represent the core entities and relationships within the application, providing the structure for storing and managing data.
User Model
ayushma/models/users.py
- Fields:
external_id(UUID): Unique identifier for the user.full_name(CharField): User's full name (optional).email(EmailField): User's email address, used as username.allow_key(BooleanField): Allows user to use their own OpenAI API key.is_reviewer(BooleanField): Indicates if the user has reviewer privileges.- Inherited from
AbstractUser:password,last_login,is_staff,is_active,date_joined,first_name,last_name,is_superuser,groups,user_permissions,last_login_platform,last_login_ip,modified_at
Project Model
ayushma/models/project.py
- Fields:
external_id(UUID): Unique identifier for the project.title(CharField): Project name.description(TextField): Optional project description.creator(ForeignKey): Links to User model, denotes the project creator.prompt(TextField): Optional instructions for the AI assistant.assistant_id(CharField): ID of the linked OpenAI assistant.open_ai_key(CharField): Project-specific OpenAI API key.stt_engine,tts_engine,model(IntegerField): Configurations for speech and AI model.preset_questions(ArrayField): Preset questions for the project.is_default,archived(BooleanField): Status flags for the project.- Inherited from
BaseModel:created_at,modified_at,deleted
Chat Models
ayushma/models/chat.py
Chat
- Fields:
external_id(UUID): Unique identifier for the chat session.title(CharField): Title of the chat session.user,project(ForeignKey): Links to User and Project models.prompt(TextField): Optional chat-specific prompt.api_key(ForeignKey): API key used for the chat.model(IntegerField): AI model used for the chat.thread_id(CharField): Identifier for OpenAI assistant interactions.- Inherited from
BaseModel:created_at,modified_at,deleted
ChatMessage
- Fields:
external_id(UUID): Unique identifier for the message.chat(ForeignKey): Links to Chat model.messageType(IntegerField): Type of the message (user, Ayushma, or system).message(TextField): Content of the message.original_message(TextField): Original message before translation.language(CharField): Language of the message.reference_documents(ManyToManyField): Referenced documents.audio(FileField): Audio file for TTS output.meta(JSONField): Additional metadata.temperature,top_k(FloatField, IntegerField): Parameters for message generation.noonce(CharField): Identifier to prevent duplicate messages.- Inherited from
BaseModel:created_at,modified_at,deleted
ChatFeedback
- Fields:
external_id(UUID): Unique identifier for the feedback.chat_message(ForeignKey): Links to ChatMessage model.liked(BooleanField): User's approval of the response.message(TextField): Additional feedback text.- Inherited from
BaseModel:created_at,modified_at,deleted
Document Model
ayushma/models/document.py
- Fields:
external_id(UUID): Unique identifier for the document.title(CharField): Title of the document.description(TextField): Optional description of the document.document_type(IntegerField): Specifies the type (file, URL, text).file(FileField): File object if the document is a file.text_content(TextField): Text content of the document.project(ForeignKey): Links to the Project model.test_question(ForeignKey): Links to the TestQuestion model (if applicable).uploading,failed(BooleanField): Status flags for uploading and processing.- Inherited from
BaseModel:created_at,modified_at,deleted
Test Suite and Test Run Models
ayushma/models/testsuite.py
TestSuite
- Fields:
external_id(UUID): Unique identifier for the test suite.name(CharField): Name of the test suite.temperature(FloatField): Temperature setting for AI response generation.topk(IntegerField): Top k parameter for AI response generation.- Inherited from
BaseModel:created_at,modified_at,deleted
TestQuestion
- Fields:
external_id(UUID): Unique identifier for the test question.test_suite(ForeignKey): Links to TestSuite model.question(TextField): The prompt or question for the test case.human_answer(TextField): Expected or reference answer.documents(ManyToManyField): Attached reference documents.language(CharField): Language of the question and answer.- Inherited from
BaseModel:created_at,modified_at,deleted
TestRun
- Fields:
external_id(UUID): Unique identifier for the test run.test_suite(ForeignKey): Links to TestSuite model.project(ForeignKey): Links to the Project model.status(IntegerField): Current status (running, completed, failed).references(BooleanField): Whether reference documents were used.- Inherited from
BaseModel:created_at,modified_at,deleted
TestResult
- Fields:
external_id(UUID): Unique identifier for the test result.test_run(ForeignKey): Links to TestRun model.test_question(ForeignKey): Links to TestQuestion model.question(TextField): The question from the test case.human_answer(TextField): The expected or reference answer.answer(TextField): AI's generated answer during the test run.cosine_sim(FloatField): Cosine similarity score.bleu_score(FloatField): BLEU score of the AI's answer.references(ManyToManyField): Reference documents used.- Inherited from
BaseModel:created_at,modified_at,deleted
Feedback
- Fields:
external_id(UUID): Unique identifier for the feedback.user(ForeignKey): Links to the User model.test_result(ForeignKey): Links to TestResult model.rating(IntegerField): Rating for the test case.notes(TextField): Additional feedback notes.- Inherited from
BaseModel:created_at,modified_at,deleted
Service-Related Models
ayushma/models/services.py
APIKey
- Fields:
external_id(UUID): Unique identifier for the API key.title(CharField): Name or title of the API key.key(CharField): API key string.creator(ForeignKey): Links to deprecated User model field.service(ForeignKey): Links to the Service model.- Inherited from
BaseModel:created_at,modified_at,deleted
TempToken
-
Fields:
external_id(UUID): Unique identifier for the temporary token.token(CharField): Temporary token string.api_key(ForeignKey): Links to APIKey model.ip(CharField): IP address associated with the token.expires_at(DateTimeField): When the token expires.
Service Model
ayushma/models/services.py
- Fields:
external_id(UUID): Unique identifier for the service.name(CharField): Name of the service.allow_key(BooleanField): Indicates if API keys are allowed for the service.owner(ForeignKey): Links to the User model, indicating the service owner.- Inherited from
BaseModel:created_at,modified_at,deleted
ResetPasswordToken Model
ayushma/models/token.py
- Fields:
external_id(UUID): Unique identifier for the token.user(ForeignKey): Links to the User model.created_at(DateTimeField): Timestamp of token creation.key(CharField): The token string.ip_address(GenericIPAddressField): IP address associated with the token generation.user_agent(CharField): User agent string associated with the token generation.- Inherited from
BaseModel:modified_at,deleted