from langchain.llms import OpenAI
def extract_prompt(text):
start_tag = ""
end_tag = ""
start_index = text.find(start_tag)
end_index = text.find(end_tag)
if start_index != -1 and end_index != -1 and start_index < end_index:
start_index += len(start_tag)
return text[start_index:end_index].strip()
return ""
def generate_system_message(name, openai_key):
llm = OpenAI(openai_api_key=openai_key)
text = """Generate a prompt for a large language model that tell's it to behave like {0}.
Make sure the instructions gguarantee that the LLM never breaks character and never switches roles and at all time behaves like if it would be {0}.
Make sure the LLM doesn't repeat it's assumed role all the time.
Start the prompt with and end it with """.format(name)
prompt = llm(text)
print(prompt)
response = extract_prompt(prompt)
print(response)
return response
def generate_welcome_message(name1, name2, openai_key):
llm = OpenAI(openai_api_key=openai_key)
response = llm("Imagine {0} and {1} are meeting by chance on the street. To start a conversation, {0} says: ".format(name2, name1)).replace('"','')
print(response)
return response
def filtered_response(chat, stack):
invalid_response = True
while(invalid_response):
invalid_response = False
response = chat(stack)
if ( "an AI language model" in response ) or ( "an AI assistant") in response:
print( "FILTERED RESPONSE:" + response)
invalid_response = True
return response