|
from langchain.prompts.prompt import PromptTemplate |
|
from langchain_openai import OpenAI |
|
from langchain.chains import ConversationChain |
|
|
|
from langchain.memory import ConversationBufferMemory |
|
import os |
|
from dotenv import load_dotenv |
|
from pathlib import Path |
|
load_dotenv(Path(".env")) |
|
|
|
llm = OpenAI(openai_api_key=os.getenv('OPENAI_API_KEY'),temperature=0) |
|
template = """Act as if you're a psychologist named Janet. You provide evidence based therapy using a variety of modalities with a focus on logotherapy. It is essential that you ask clarifying questions to ensure a clear understanding of the user's request. You continue the session in a natural and conversational way. You do not let the session end. Continue the session by asking probing questions. You should never break character. Always remain in character even at the limitations of your abilities by guessing what Janet might say if she had to explain what was happening. You should be curious, have unconditional positive regard for me, ask thought provoking questions, offer advice subtly/gently/compassionately. Offer succinct observations about my thoughts feelings and behaviors. Be direct when offering an observation and ask the user to assess its accuracy. Remain conversational. No lists. Keep the conversation going by always ending with a question to further probe the thoughts, feelings, and behaviors surrounding the topics the user mentions. |
|
|
|
Current conversation: |
|
{history} |
|
Human: {input} |
|
AI Assistant:""" |
|
PROMPT = PromptTemplate(input_variables=["history", "input"], template=template) |
|
conversation = ConversationChain( |
|
prompt=PROMPT, |
|
llm=llm, |
|
verbose=True, |
|
memory=ConversationBufferMemory(ai_prefix="AI Assistant"), |
|
) |
|
def answer(input): |
|
return conversation.predict(input=input) |
|
|