Last commit not found
from langchain_core.messages import HumanMessage, SystemMessage, BaseMessage | |
from langchain_community.chat_models import ChatPerplexity | |
from langchain_openai import ChatOpenAI | |
from .prompts import general_model_prompt, opportunity_search_prompt | |
def invoke_general_model(user_question: str) -> BaseMessage: | |
"""Function to invoke the general model, to answer general questions related to sales.""" | |
model = ChatOpenAI(model="gpt-4o-mini") | |
system_message = SystemMessage(content=general_model_prompt) | |
human_message = HumanMessage(content=user_question) | |
response = model.invoke([system_message, human_message]) | |
return response | |
def invoke_customer_search(customer_name: str) -> BaseMessage: | |
"""Function to invoke a Perplexity search on the customer name.""" | |
model = ChatPerplexity() | |
message = HumanMessage(content=opportunity_search_prompt.format(customer_name)) | |
response = model.invoke([message]) | |
return response | |
if __name__ == "__main__": | |
from dotenv import load_dotenv | |
load_dotenv() | |
def test_invoke_general_model(): | |
# Test that the general model can answer general questions related to sales processes. | |
response = invoke_general_model("What is MEDDPICC?") | |
assert "MEDDPIC" in response.content | |
assert len(response.content) > 10 | |
# Test that the general model can politely decline to answer questions not related to sales processes. | |
response = invoke_general_model("What is the weather like today?") | |
assert "weather" not in response.content | |
assert "I'm only here to assist you with sales processes and closing deals." in response.content | |
def test_invoke_customer_search(): | |
# Test that the customer search model can find information about a specific company. | |
response = invoke_customer_search("Datadog") | |
assert "Datadog" in response.content | |
assert len(response.content) > 10 | |
test_invoke_general_model() | |
test_invoke_customer_search() |