Clean up chat tests to work with updated chat methods in gpt.py

This commit is contained in:
Debanjum Singh Solanky 2023-03-14 11:27:58 -06:00
parent 24ddebf3ce
commit 9306cd901a

View file

@ -2,7 +2,7 @@
import pytest import pytest
# Internal Packages # Internal Packages
from khoj.processor.conversation.gpt import converse, message_to_prompt from khoj.processor.conversation.gpt import converse, message_to_log, message_to_prompt
# Initialize variables for tests # Initialize variables for tests
@ -32,50 +32,39 @@ def test_message_to_understand_prompt():
) )
def test_minimal_chat_with_gpt(): def test_minimal_chat_with_gpt():
# Act # Act
response = converse("What will happen when the stars go out?", model=model, api_key=api_key) response = converse(
text="", # Assume no context retrieved from notes for the user_query
user_query="Hello, my name is Testatron. Who are you?",
api_key=api_key,
)
# Assert # Assert
expected_responses = ["Khoj", "khoj"]
assert len(response) > 0 assert len(response) > 0
assert any([expected_response in response for expected_response in expected_responses]), (
"Expected assistants name, [K|k]hoj, in response but got" + response
)
# ---------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------
@pytest.mark.skipif( @pytest.mark.skipif(
api_key is None, reason="Set api_key variable to your OpenAI API key from https://beta.openai.com/account/api-keys" api_key is None, reason="Set api_key variable to your OpenAI API key from https://beta.openai.com/account/api-keys"
) )
def test_chat_with_history(): def test_multi_turn_chat_with_minimal_history_no_context():
# Arrange conversation_log = {}
ai_prompt = "AI:" conversation_log["chat"] = message_to_log(
human_prompt = "Human:" user_message="Hello, my name is Testatron. Who are you?",
gpt_message="Hi, I am Khoj, an AI conversational companion. How can I help you today?",
conversation_primer = f""" )
The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly companion.
{human_prompt} Hello, I am Testatron. Who are you?
{ai_prompt} Hi, I am Khoj, an AI conversational companion created by OpenAI. How can I help you today?"""
# Act # Act
response = converse( response = converse(
"Hi Khoj, What is my name?", text="", # Assume no context retrieved from notes for the user_query
model=model, user_query="Hi Khoj, what is my name?",
conversation_history=conversation_primer, conversation_log=conversation_log,
api_key=api_key, api_key=api_key,
temperature=0,
max_tokens=50,
) )
# Assert # Assert
assert len(response) > 0 assert len(response) > 0
assert "Testatron" in response or "testatron" in response assert "Testatron" in response or "testatron" in response
# ----------------------------------------------------------------------------------------------------
@pytest.mark.skipif(
api_key is None, reason="Set api_key variable to your OpenAI API key from https://beta.openai.com/account/api-keys"
)
def test_understand_message_using_gpt():
# Act
response = understand("When did I last dine at Subway?", model=model, api_key=api_key)
# Assert
assert len(response) > 0
assert response["intent"]["memory-type"] == "ledger"