Skip to content

Commit

Permalink
formatting and fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
ayushpanwar25 committed Jan 2, 2024
1 parent 5dd85c1 commit 9289e7a
Show file tree
Hide file tree
Showing 9 changed files with 376 additions and 36 deletions.
12 changes: 12 additions & 0 deletions backend/dataset/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,22 @@ class ConversationAdmin(ImportExportActionModelAdmin):
class SpeechConversationAdmin(ImportExportActionModelAdmin):
resource_class = SpeechConversationResource

class PromptBaseAdmin(ImportExportActionModelAdmin):
resource_class = PromptBaseResource

class PromptAnswerAdmin(ImportExportActionModelAdmin):
resource_class = PromptAnswerResource

class PromptAnswerEvaluationAdmin(ImportExportActionModelAdmin):
resource_class = PromptAnswerEvaluationResource


admin.site.register(SentenceText, SentenceTextAdmin)
admin.site.register(TranslationPair, TranslationPairAdmin)
admin.site.register(OCRDocument, OCRDocumentAdmin)
admin.site.register(BlockText, BlockTextAdmin)
admin.site.register(Conversation, ConversationAdmin)
admin.site.register(SpeechConversation, SpeechConversationAdmin)
admin.site.register(PromptBase, PromptBaseAdmin)
admin.site.register(PromptAnswer, PromptAnswerAdmin)
admin.site.register(PromptAnswerEvaluation, PromptAnswerEvaluationAdmin)
Original file line number Diff line number Diff line change
Expand Up @@ -5,43 +5,220 @@


class Migration(migrations.Migration):

dependencies = [
('dataset', '0044_instructions_interactions'),
("dataset", "0044_instructions_interactions"),
]

operations = [
migrations.CreateModel(
name='PromptAnswer',
name="PromptAnswer",
fields=[
('datasetbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='dataset.datasetbase')),
('prompt', models.TextField(blank=True, help_text='Prompt of the conversation', null=True, verbose_name='prompt')),
('output', models.TextField(blank=True, help_text='Response of the conversation', null=True, verbose_name='response')),
('model', models.CharField(choices=[('GPT3.5', 'GPT3.5'), ('GPT4', 'GPT4'), ('LLAMA2', 'LLAMA2')], help_text='Model of the response', max_length=16, verbose_name='model')),
('language', models.CharField(choices=[('English', 'English'), ('Assamese', 'Assamese'), ('Bengali', 'Bengali'), ('Bodo', 'Bodo'), ('Dogri', 'Dogri'), ('Gujarati', 'Gujarati'), ('Hindi', 'Hindi'), ('Kannada', 'Kannada'), ('Kashmiri', 'Kashmiri'), ('Konkani', 'Konkani'), ('Maithili', 'Maithili'), ('Malayalam', 'Malayalam'), ('Manipuri', 'Manipuri'), ('Marathi', 'Marathi'), ('Nepali', 'Nepali'), ('Odia', 'Odia'), ('Punjabi', 'Punjabi'), ('Sanskrit', 'Sanskrit'), ('Santali', 'Santali'), ('Sindhi', 'Sindhi'), ('Sinhala', 'Sinhala'), ('Tamil', 'Tamil'), ('Telugu', 'Telugu'), ('Urdu', 'Urdu')], max_length=15, verbose_name='language')),
(
"datasetbase_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="dataset.datasetbase",
),
),
(
"prompt",
models.TextField(
blank=True,
help_text="Prompt of the conversation",
null=True,
verbose_name="prompt",
),
),
(
"output",
models.TextField(
blank=True,
help_text="Response of the conversation",
null=True,
verbose_name="response",
),
),
(
"model",
models.CharField(
choices=[
("GPT3.5", "GPT3.5"),
("GPT4", "GPT4"),
("LLAMA2", "LLAMA2"),
],
help_text="Model of the response",
max_length=16,
verbose_name="model",
),
),
(
"language",
models.CharField(
choices=[
("English", "English"),
("Assamese", "Assamese"),
("Bengali", "Bengali"),
("Bodo", "Bodo"),
("Dogri", "Dogri"),
("Gujarati", "Gujarati"),
("Hindi", "Hindi"),
("Kannada", "Kannada"),
("Kashmiri", "Kashmiri"),
("Konkani", "Konkani"),
("Maithili", "Maithili"),
("Malayalam", "Malayalam"),
("Manipuri", "Manipuri"),
("Marathi", "Marathi"),
("Nepali", "Nepali"),
("Odia", "Odia"),
("Punjabi", "Punjabi"),
("Sanskrit", "Sanskrit"),
("Santali", "Santali"),
("Sindhi", "Sindhi"),
("Sinhala", "Sinhala"),
("Tamil", "Tamil"),
("Telugu", "Telugu"),
("Urdu", "Urdu"),
],
max_length=15,
verbose_name="language",
),
),
],
bases=('dataset.datasetbase',),
bases=("dataset.datasetbase",),
),
migrations.CreateModel(
name='PromptBase',
name="PromptBase",
fields=[
('datasetbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='dataset.datasetbase')),
('prompt', models.TextField(blank=True, help_text='Prompt of the conversation', null=True, verbose_name='prompt')),
('language', models.CharField(choices=[('English', 'English'), ('Assamese', 'Assamese'), ('Bengali', 'Bengali'), ('Bodo', 'Bodo'), ('Dogri', 'Dogri'), ('Gujarati', 'Gujarati'), ('Hindi', 'Hindi'), ('Kannada', 'Kannada'), ('Kashmiri', 'Kashmiri'), ('Konkani', 'Konkani'), ('Maithili', 'Maithili'), ('Malayalam', 'Malayalam'), ('Manipuri', 'Manipuri'), ('Marathi', 'Marathi'), ('Nepali', 'Nepali'), ('Odia', 'Odia'), ('Punjabi', 'Punjabi'), ('Sanskrit', 'Sanskrit'), ('Santali', 'Santali'), ('Sindhi', 'Sindhi'), ('Sinhala', 'Sinhala'), ('Tamil', 'Tamil'), ('Telugu', 'Telugu'), ('Urdu', 'Urdu')], max_length=15, verbose_name='language')),
('instruction_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='dataset.instructions')),
(
"datasetbase_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="dataset.datasetbase",
),
),
(
"prompt",
models.TextField(
blank=True,
help_text="Prompt of the conversation",
null=True,
verbose_name="prompt",
),
),
(
"language",
models.CharField(
choices=[
("English", "English"),
("Assamese", "Assamese"),
("Bengali", "Bengali"),
("Bodo", "Bodo"),
("Dogri", "Dogri"),
("Gujarati", "Gujarati"),
("Hindi", "Hindi"),
("Kannada", "Kannada"),
("Kashmiri", "Kashmiri"),
("Konkani", "Konkani"),
("Maithili", "Maithili"),
("Malayalam", "Malayalam"),
("Manipuri", "Manipuri"),
("Marathi", "Marathi"),
("Nepali", "Nepali"),
("Odia", "Odia"),
("Punjabi", "Punjabi"),
("Sanskrit", "Sanskrit"),
("Santali", "Santali"),
("Sindhi", "Sindhi"),
("Sinhala", "Sinhala"),
("Tamil", "Tamil"),
("Telugu", "Telugu"),
("Urdu", "Urdu"),
],
max_length=15,
verbose_name="language",
),
),
(
"instruction_id",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
to="dataset.instructions",
),
),
],
bases=('dataset.datasetbase',),
bases=("dataset.datasetbase",),
),
migrations.CreateModel(
name='PromptAnswerEvaluation',
name="PromptAnswerEvaluation",
fields=[
('datasetbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='dataset.datasetbase')),
('output_likert_score', models.IntegerField(blank=True, help_text='Rating of the prompt response', null=True, verbose_name='prompt_response_rating')),
('form_output_json', models.JSONField(blank=True, help_text='Form output of the prompt response (JSON)', null=True, verbose_name='form_output')),
('datetime', models.DateTimeField(blank=True, help_text='Date and time of the prompt response', null=True, verbose_name='datetime')),
('time_taken', models.FloatField(blank=True, help_text='Time taken to complete the prompt response', null=True, verbose_name='time_taken')),
('model_output_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='dataset.promptanswer')),
(
"datasetbase_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="dataset.datasetbase",
),
),
(
"output_likert_score",
models.IntegerField(
blank=True,
help_text="Rating of the prompt response",
null=True,
verbose_name="prompt_response_rating",
),
),
(
"form_output_json",
models.JSONField(
blank=True,
help_text="Form output of the prompt response (JSON)",
null=True,
verbose_name="form_output",
),
),
(
"datetime",
models.DateTimeField(
blank=True,
help_text="Date and time of the prompt response",
null=True,
verbose_name="datetime",
),
),
(
"time_taken",
models.FloatField(
blank=True,
help_text="Time taken to complete the prompt response",
null=True,
verbose_name="time_taken",
),
),
(
"model_output_id",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
to="dataset.promptanswer",
),
),
],
bases=('dataset.datasetbase',),
bases=("dataset.datasetbase",),
),
]
17 changes: 14 additions & 3 deletions backend/dataset/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
("BlockText", "BlockText"),
("Conversation", "Conversation"),
("SpeechConversation", "SpeechConversation"),
("PromptBase", "PromptBase"),
("PromptAnswer", "PromptAnswer"),
("PromptAnswerEvaluation", "PromptAnswerEvaluation"),
]

GENDER_CHOICES = (("M", "Male"), ("F", "Female"), ("O", "Others"))
Expand Down Expand Up @@ -113,6 +116,8 @@
]

LLM_CHOICES = (("GPT3.5", "GPT3.5"), ("GPT4", "GPT4"), ("LLAMA2", "LLAMA2"))


class DatasetInstance(models.Model):
"""
Dataset Instance Model
Expand Down Expand Up @@ -725,10 +730,12 @@ class Interactions(DatasetBase):
def __str__(self):
return f"{self.id} - Interaction with Instruction {self.instruction_id_id}"


class PromptBase(DatasetBase):
"""
Dataset for storing prompt data
"""

prompt = models.TextField(
verbose_name="prompt",
null=True,
Expand All @@ -745,10 +752,12 @@ class PromptBase(DatasetBase):
def __str__(self):
return str(self.id)


class PromptAnswer(DatasetBase):
"""
Dataset for storing prompt response data
"""

prompt = models.TextField(
verbose_name="prompt",
null=True,
Expand All @@ -765,19 +774,21 @@ class PromptAnswer(DatasetBase):
verbose_name="model",
max_length=16,
help_text=("Model of the response"),
choices=LLM_CHOICES
choices=LLM_CHOICES,
)
language = models.CharField(
verbose_name="language", choices=LANG_CHOICES, max_length=15
)

def __str__(self):
return str(self.id)



class PromptAnswerEvaluation(DatasetBase):
"""
Dataset for storing prompt response evaluation data
"""

model_output_id = models.ForeignKey(
PromptAnswer, on_delete=models.CASCADE, null=True, blank=True
)
Expand Down Expand Up @@ -807,4 +818,4 @@ class PromptAnswerEvaluation(DatasetBase):
)

def __str__(self):
return str(self.id)
return str(self.id)
41 changes: 41 additions & 0 deletions backend/dataset/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,44 @@ class Meta:
skip_diff = True
force_init_instance = True

class PromptBaseResource(ModelResource, ResourceMixin):
"""
Import/Export Resource for PromptBase
"""

class Meta:
import_id_fields = ("id",)
exclude = ("datasetbase_ptr",)
model = PromptBase
clean_model_instances = True
skip_diff = True
force_init_instance = True

class PromptAnswerResource(ModelResource, ResourceMixin):
"""
Import/Export Resource for PromptAnswer
"""

class Meta:
import_id_fields = ("id",)
exclude = ("datasetbase_ptr",)
model = PromptAnswer
clean_model_instances = True
skip_diff = True
force_init_instance = True

class PromptAnswerEvaluationResource(ModelResource, ResourceMixin):
"""
Import/Export Resource for PromptAnswerEvaluation
"""

class Meta:
import_id_fields = ("id",)
exclude = ("datasetbase_ptr",)
model = PromptAnswerEvaluation
clean_model_instances = True
skip_diff = True
force_init_instance = True

# Define a mapping between dataset instance type and resource
RESOURCE_MAP = {
Expand All @@ -110,4 +148,7 @@ class Meta:
"BlockText": BlockTextResource,
"Conversation": ConversationResource,
"SpeechConversation": SpeechConversationResource,
"PromptBase": PromptBaseResource,
"PromptAnswer": PromptAnswerResource,
"PromptAnswerEvaluation": PromptAnswerEvaluationResource,
}
Loading

0 comments on commit 9289e7a

Please sign in to comment.