mirror of
https://github.com/khoj-ai/khoj.git
synced 2025-02-17 08:04:21 +00:00
Add speech to text model configuration to Database
This commit is contained in:
parent
4cdfe8fc4f
commit
1ca99b6eb0
5 changed files with 62 additions and 1 deletions
|
@ -28,6 +28,7 @@ from khoj.database.models import (
|
|||
Conversation,
|
||||
ChatModelOptions,
|
||||
SearchModelConfig,
|
||||
SpeechToTextModelOptions,
|
||||
Subscription,
|
||||
UserConversationConfig,
|
||||
OpenAIProcessorConversationConfig,
|
||||
|
@ -339,6 +340,10 @@ class ConversationAdapters:
|
|||
async def get_openai_chat_config():
|
||||
return await OpenAIProcessorConversationConfig.objects.filter().afirst()
|
||||
|
||||
@staticmethod
|
||||
async def get_speech_to_text_config():
|
||||
return await SpeechToTextModelOptions.objects.filter().afirst()
|
||||
|
||||
|
||||
class EntryAdapters:
|
||||
word_filer = WordFilter()
|
||||
|
|
|
@ -9,12 +9,14 @@ from khoj.database.models import (
|
|||
OpenAIProcessorConversationConfig,
|
||||
OfflineChatProcessorConversationConfig,
|
||||
SearchModelConfig,
|
||||
SpeechToTextModelOptions,
|
||||
Subscription,
|
||||
)
|
||||
|
||||
admin.site.register(KhojUser, UserAdmin)
|
||||
|
||||
admin.site.register(ChatModelOptions)
|
||||
admin.site.register(SpeechToTextModelOptions)
|
||||
admin.site.register(OpenAIProcessorConversationConfig)
|
||||
admin.site.register(OfflineChatProcessorConversationConfig)
|
||||
admin.site.register(SearchModelConfig)
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
# Generated by Django 4.2.7 on 2023-11-22 08:51
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("database", "0019_alter_googleuser_family_name_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="SpeechToTextModelOptions",
|
||||
fields=[
|
||||
("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
|
||||
("created_at", models.DateTimeField(auto_now_add=True)),
|
||||
("updated_at", models.DateTimeField(auto_now=True)),
|
||||
("model_name", models.CharField(default="whisper-1", max_length=200)),
|
||||
(
|
||||
"model_type",
|
||||
models.CharField(
|
||||
choices=[("openai", "Openai"), ("offline", "Offline")], default="openai", max_length=200
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"abstract": False,
|
||||
},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="chatmodeloptions",
|
||||
name="chat_model",
|
||||
field=models.CharField(default="gpt-4", max_length=200),
|
||||
),
|
||||
]
|
|
@ -120,6 +120,15 @@ class OfflineChatProcessorConversationConfig(BaseModel):
|
|||
enabled = models.BooleanField(default=False)
|
||||
|
||||
|
||||
class SpeechToTextModelOptions(BaseModel):
|
||||
class ModelType(models.TextChoices):
|
||||
OPENAI = "openai"
|
||||
OFFLINE = "offline"
|
||||
|
||||
model_name = models.CharField(max_length=200, default="whisper-1")
|
||||
model_type = models.CharField(max_length=200, choices=ModelType.choices, default=ModelType.OPENAI)
|
||||
|
||||
|
||||
class ChatModelOptions(BaseModel):
|
||||
class ModelType(models.TextChoices):
|
||||
OPENAI = "openai"
|
||||
|
@ -127,7 +136,7 @@ class ChatModelOptions(BaseModel):
|
|||
|
||||
max_prompt_size = models.IntegerField(default=None, null=True, blank=True)
|
||||
tokenizer = models.CharField(max_length=200, default=None, null=True, blank=True)
|
||||
chat_model = models.CharField(max_length=200, default=None, null=True, blank=True)
|
||||
chat_model = models.CharField(max_length=200, default="gpt-4")
|
||||
model_type = models.CharField(max_length=200, choices=ModelType.choices, default=ModelType.OPENAI)
|
||||
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ from khoj.database.models import (
|
|||
OfflineChatProcessorConversationConfig,
|
||||
OpenAIProcessorConversationConfig,
|
||||
ChatModelOptions,
|
||||
SpeechToTextModelOptions,
|
||||
)
|
||||
|
||||
from khoj.utils.constants import default_offline_chat_model, default_online_chat_model
|
||||
|
@ -94,6 +95,15 @@ def initialization():
|
|||
chat_model=openai_chat_model, model_type=ChatModelOptions.ModelType.OPENAI, max_prompt_size=max_tokens
|
||||
)
|
||||
|
||||
default_speech2text_model = "whisper-1"
|
||||
openai_speech2text_model = input(
|
||||
f"Enter the OpenAI speech to text model you want to use (default: {default_speech2text_model}): "
|
||||
)
|
||||
openai_speech2text_model = openai_speech2text_model or default_speech2text_model
|
||||
SpeechToTextModelOptions.objects.create(
|
||||
model_name=openai_speech2text_model, model_type=SpeechToTextModelOptions.ModelType.OPENAI
|
||||
)
|
||||
|
||||
logger.info("🗣️ Chat model configuration complete")
|
||||
|
||||
admin_user = KhojUser.objects.filter(is_staff=True).first()
|
||||
|
|
Loading…
Add table
Reference in a new issue