main.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import json
  2. import os
  3. import sys
  4. import openai
  5. from llama_index import GPTVectorStoreIndex, download_loader
  6. # from llama_index.chat_engine import SimpleChatEngine
  7. from datetime import datetime
  8. from django.db import connection, models
  9. from django.db.models import Q
  10. import re
  11. from adm.constants import CTS as cts
  12. from adm.storage import MediaStorage
  13. from adm.services import ParameterService
  14. class Chatbot():
  15. def __init__(self) -> None:
  16. objParameter = ParameterService()
  17. openai.api_key = objParameter.getParameterByKey("OPENAI_API_KEY").value
  18. media_storage = MediaStorage()
  19. self.bucket = media_storage.storage.bucket.name
  20. self.storage = media_storage.storage
  21. self.credentials = json.dumps(media_storage.credentials)
  22. # self.docs_path = objParameter.getParameterByKey("CHATBOT_DOCS_PATH").value
  23. self.docs_path = '/chatbot/docs'
  24. self.endpoint = 'https://' + cts.GCP_ST_ACCESS_KEY_ID
  25. pass
  26. def train (self):
  27. OpendalGcsReader = download_loader("OpendalGcsReader")
  28. loader = OpendalGcsReader(
  29. bucket=self.bucket,
  30. path=self.docs_path,
  31. endpoint=self.endpoint,
  32. credentials=self.credentials,
  33. )
  34. documents = loader.load_data()
  35. # construct the index with the txt document
  36. index = GPTVectorStoreIndex.from_documents(documents)
  37. chat_engine = index.as_chat_engine(
  38. chat_mode='condense_question',
  39. verbose=True
  40. )
  41. chat_engine.chat_repl()