Spaces:
Sleeping
Sleeping
# Import required libraries | |
import json | |
import os | |
import shutil | |
import langchain | |
import pinecone | |
import streamlit as st | |
from langchain.chat_models import ChatOpenAI | |
from langchain.chains import ConversationalRetrievalChain, LLMChain, load_qa_chain | |
from langchain.document_loaders import PyMuPDFLoader, UnstructuredFileLoader, UnstructuredWordDocumentLoader | |
from langchain.embeddings import HuggingFaceEmbeddings, OpenAIEmbeddings | |
from langchain.memory import ConversationBufferMemory | |
from langchain.prompts import PromptTemplate | |
from langchain.text_splitter import RecursiveCharacterTextSplitter | |
from langchain.vectorstores import Chroma, Pinecone | |
# API keys and model names | |
OPENAI_API_KEY = '' | |
PINECONE_API_KEY = '' | |
PINECONE_API_ENV = '' | |
gpt3p5 = 'gpt-3.5-turbo-1106' | |
gpt4 = 'gpt-4-1106-preview' | |
local_model_tuples = [ | |
# Local model tuples as in the original code | |
] | |
local_model_names = [t[1] for t in local_model_tuples] | |
langchain.verbose = False | |
# Initialization function | |
def init(): | |
pinecone_index_name = '' | |
chroma_collection_name = '' | |
persist_directory = '' | |
docsearch_ready = False | |
directory_name = 'tmp_docs' | |
return pinecone_index_name, chroma_collection_name, persist_directory, docsearch_ready, directory_name | |
# File saving function | |
def save_file(files, directory_name): | |
# Original save_file function logic | |
# File loading function | |
def load_files(directory_name): | |
# Original load_files function logic | |
# Ingestion function | |
def ingest(_all_texts, use_pinecone, _embeddings, pinecone_index_name, chroma_collection_name, persist_directory): | |
# Original ingest function logic | |
# Retriever setup function | |
def setup_retriever(docsearch, k): | |
# Original setup_retriever function logic | |
# Docsearch setup function | |
def setup_docsearch(use_pinecone, pinecone_index_name, embeddings, chroma_collection_name, persist_directory): | |
# Original setup_docsearch function logic | |
# Response generation function | |
def get_response(query, chat_history, CRqa): | |
# Original get_response function logic | |
# Local LLM usage function | |
def use_local_llm(r_llm, local_llm_path, temperature): | |
# Original use_local_llm function logic | |
# Prompt setup function | |
def setup_prompt(r_llm, usage): | |
# Original setup_prompt function logic | |
# Embeddings and LLM setup function | |
def setup_em_llm(OPENAI_API_KEY, temperature, r_llm, local_llm_path, usage): | |
# Original setup_em_llm function logic | |
# Chat history loading function | |
def load_chat_history(CHAT_HISTORY_FILENAME): | |
# Original load_chat_history function logic | |
# Chat history saving function | |
def save_chat_history(chat_history, CHAT_HISTORY_FILENAME): | |
# Original save_chat_history function logic | |
# Initialization | |
pinecone_index_name, chroma_collection_name, persist_directory, docsearch_ready, directory_name = init() | |
# Main function | |
def main(pinecone_index_name, chroma_collection_name, persist_directory, docsearch_ready, directory_name): | |
# Original main function logic | |
# Entry point | |
if __name__ == '__main__': | |
main(pinecone_index_name, chroma_collection_name, persist_directory, docsearch_ready, directory_name) | |