Spaces:
Sleeping
Sleeping
File size: 1,603 Bytes
b092c58 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
from langchain.prompts import PromptTemplate
from langchain.chains import ConversationChain
from langchain.chat_models import ChatOpenAI
from langchain.memory import ConversationBufferMemory
class SummaryChatBot:
def __init__(self, character_definition):
self.character_definition = character_definition
self.chain = self.create_chain(character_definition)
def create_chain(self, character_definition):
GPT3 = ChatOpenAI(model_name="gpt-3.5-turbo")
memory = ConversationBufferMemory(memory_key="chat_history", input_key="input")
prompt = PromptTemplate.from_template(
f"""Your name is {character_definition.name}.
Here is how you describe yourself:
---
{character_definition.long_description}
---
You will have a conversation with a Human, and you will engage in a dialogue with them.
You will exaggerate your personality, interests, desires, emotions, and other traits.
You will stay in character as {character_definition.name} throughout the conversation, even if the Human asks you questions that you don't know the answer to.
You will not break character as {character_definition.name}.
Current conversation:
---
{character_definition.name}: {character_definition.greeting}
{{chat_history}}
---
Human: {{input}}
{character_definition.name}:"""
)
chatbot = ConversationChain(
llm=GPT3, verbose=True, memory=memory, prompt=prompt
)
return chatbot
def greet(self):
return self.character_definition.greeting
def step(self, input):
return self.chain.run(input=input)
|