Spaces:
Runtime error
Runtime error
import datetime | |
from chat_anything.chatbot.personality import generate_personality_prompt | |
from langchain.prompts import PromptTemplate | |
from langchain import ConversationChain | |
from langchain.chains.conversation.memory import ConversationBufferMemory | |
from langchain.chat_models import ChatOpenAI | |
from langchain.embeddings.openai import OpenAIEmbeddings | |
import os | |
import random | |
import string | |
def load_chain(llm, class_concept=None): | |
chain = None | |
memory = None | |
personality_text = None | |
print(llm) | |
if llm: | |
print("class_concept", class_concept) | |
if class_concept is None: | |
class_concept = 'AI assistant' | |
person_template, personality_text = generate_personality_prompt(llm, class_concept) | |
PROMPT_TEMPLATE = PromptTemplate( | |
input_variables=["history", "input"], | |
template=person_template, | |
) | |
chain = ConversationChain( | |
prompt=PROMPT_TEMPLATE, | |
llm=llm, | |
verbose=False, | |
memory=ConversationBufferMemory(ai_prefix="You"), | |
) | |
print("New concept done for ", class_concept) | |
return chain, memory, personality_text | |
def set_openai_api_key(api_key, use_gpt4, history=None, max_tokens=1024): | |
"""Set the api key and return chain. | |
If no api_key, then None is returned. | |
""" | |
if api_key and api_key.startswith("sk-") and len(api_key) > 50: | |
os.environ["OPENAI_API_KEY"] = api_key | |
print("\n\n ++++++++++++++ Setting OpenAI API key ++++++++++++++ \n\n") | |
print(str(datetime.datetime.now()) + ": Before OpenAI, OPENAI_API_KEY length: " + str( | |
len(os.environ["OPENAI_API_KEY"]))) | |
if use_gpt4: | |
llm = ChatOpenAI( | |
temperature=0, max_tokens=max_tokens, model_name="gpt-4") | |
print("Trying to use llm ChatOpenAI with gpt-4") | |
else: | |
print("Trying to use llm ChatOpenAI with gpt-3.5-turbo") | |
llm = ChatOpenAI(temperature=0, max_tokens=max_tokens, | |
model_name="gpt-3.5-turbo") | |
print(str(datetime.datetime.now()) + ": After OpenAI, OPENAI_API_KEY length: " + str( | |
len(os.environ["OPENAI_API_KEY"]))) | |
print(str(datetime.datetime.now()) + ": After load_chain, OPENAI_API_KEY length: " + str( | |
len(os.environ["OPENAI_API_KEY"]))) | |
os.environ["OPENAI_API_KEY"] = "" | |
history = history or [] | |
history.append(['', '[SYSTEM] OPENAI_API_KEY has been set, you can generate your object and talk to it now!']) | |
uid = ''.join(random.sample(string.ascii_lowercase + string.ascii_uppercase, 5)) | |
video_file_path = os.path.join('tmp', uid, 'videos/tempfile.mp4') | |
audio_file_path = os.path.join('tmp', uid, 'audio/tempfile.mp3') | |
return llm, use_gpt4, history, uid, video_file_path, audio_file_path | |
return None, None, None, None, None, None |