import json import os import sys import openai from llama_index import GPTVectorStoreIndex, download_loader # from llama_index.chat_engine import SimpleChatEngine from datetime import datetime from django.db import connection, models from django.db.models import Q import re from adm.constants import CTS as cts from adm.storage import MediaStorage from adm.services import ParameterService class Chatbot(): def __init__(self) -> None: objParameter = ParameterService() openai.api_key = objParameter.getParameterByKey("OPENAI_API_KEY").value media_storage = MediaStorage() self.bucket = media_storage.storage.bucket.name self.storage = media_storage.storage self.credentials = json.dumps(media_storage.credentials) # self.docs_path = objParameter.getParameterByKey("CHATBOT_DOCS_PATH").value self.docs_path = '/chatbot/docs' self.endpoint = 'https://' + cts.GCP_ST_ACCESS_KEY_ID pass def train (self): OpendalGcsReader = download_loader("OpendalGcsReader") loader = OpendalGcsReader( bucket=self.bucket, path=self.docs_path, endpoint=self.endpoint, credentials=self.credentials, ) documents = loader.load_data() # construct the index with the txt document index = GPTVectorStoreIndex.from_documents(documents) chat_engine = index.as_chat_engine( chat_mode='condense_question', verbose=True ) chat_engine.chat_repl()