Add subqueries for internet-connected search results and update client-side code accordingly

- Add a wrapper method to help make direct queries to the LLM and determine any intermediate responses needed for handling the request
This commit is contained in:
sabaimran
2023-11-20 15:19:15 -08:00
parent b8e6883a81
commit fee99779bf
9 changed files with 253 additions and 86 deletions

View File

@@ -4,6 +4,7 @@ from datetime import date, datetime
import secrets
from typing import Type, List
from datetime import date, timezone
import random
from django.db import models
from django.contrib.sessions.backends.db import SessionStore
@@ -339,6 +340,26 @@ class ConversationAdapters:
async def get_openai_chat_config():
return await OpenAIProcessorConversationConfig.objects.filter().afirst()
@staticmethod
def get_valid_conversation_config(user: KhojUser):
offline_chat_config = ConversationAdapters.get_offline_chat_conversation_config()
conversation_config = ConversationAdapters.get_conversation_config(user)
if conversation_config is None:
conversation_config = ConversationAdapters.get_default_conversation_config()
if offline_chat_config and offline_chat_config.enabled and conversation_config.model_type == "offline":
if state.gpt4all_processor_config is None or state.gpt4all_processor_config.loaded_model is None:
state.gpt4all_processor_config = GPT4AllProcessorModel(conversation_config.chat_model)
return conversation_config
openai_chat_config = ConversationAdapters.get_openai_conversation_config()
if openai_chat_config and conversation_config.model_type == "openai":
return conversation_config
else:
raise ValueError("Invalid conversation config - either configure offline chat or openai chat")
class EntryAdapters:
word_filer = WordFilter()