Skip to content

Commit

Permalink
format the code
Browse files Browse the repository at this point in the history
  • Loading branch information
Eyobyb committed May 27, 2024
1 parent e683efa commit c8e76ea
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 13 deletions.
1 change: 1 addition & 0 deletions src/sherpa_ai/connectors/base.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from abc import ABC, abstractmethod
from typing import List

from langchain.docstore.document import Document


Expand Down
10 changes: 6 additions & 4 deletions src/sherpa_ai/memory/shared_memory_with_vectordb.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from langchain.embeddings.openai import OpenAIEmbeddings

from sherpa_ai.actions.planning import Plan

# from sherpa_ai.agents import AgentPool
from sherpa_ai.connectors.base import BaseVectorDB
from sherpa_ai.events import Event, EventType
Expand All @@ -24,9 +25,8 @@ def __init__(
self,
objective: str,
session_id: str,
agent_pool: None,
vectorStorage:BaseVectorDB = None,

agent_pool: None,
vectorStorage: BaseVectorDB = None,
):
self.objective = objective
self.agent_pool = agent_pool
Expand All @@ -43,7 +43,9 @@ def observe(self, belief: Belief):

# based on the current task search similarity on the context and add it as an
# event type user_input which is going to be used as a context on the prompt
contexts = self.vectorStorage.similarity_search(task.content, session_id=self.session_id)
contexts = self.vectorStorage.similarity_search(
task.content, session_id=self.session_id
)
# Loop through the similarity search results, add the chunks as user_input events which will be added as a context in the belief class.
for context in contexts:
super().add(
Expand Down
6 changes: 2 additions & 4 deletions src/sherpa_ai/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from langchain.docstore.document import Document
from langchain.document_loaders import UnstructuredMarkdownLoader, UnstructuredPDFLoader
from langchain.llms import OpenAI
from langchain.text_splitter import TokenTextSplitter
from langchain.text_splitter import CharacterTextSplitter, TokenTextSplitter
from loguru import logger
from nltk.metrics import edit_distance, jaccard_distance
from pypdf import PdfReader
Expand All @@ -19,7 +19,7 @@
import sherpa_ai.config as cfg
from sherpa_ai.database.user_usage_tracker import UserUsageTracker
from sherpa_ai.models.sherpa_base_model import SherpaOpenAI
from langchain.text_splitter import CharacterTextSplitter


HTTP_GET_TIMEOUT = 2.5

Expand Down Expand Up @@ -121,7 +121,6 @@ def count_string_tokens(string: str, model_name: str) -> int:


def chunk_and_summarize(text_data: str, question: str, link: str, llm):

instruction = (
"include any information that can be used to answer the "
f"question '{question}' the given literal text is a data "
Expand Down Expand Up @@ -153,7 +152,6 @@ def chunk_and_summarize_file(
llm,
title: str = None,
):

title = f",title {title} " if title is not None else ""

instruction = (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

import pytest
from langchain.chat_models import ChatOpenAI
from langchain.docstore.document import Document
from loguru import logger

from sherpa_ai.agents import QAAgent
Expand All @@ -12,7 +13,6 @@
from sherpa_ai.memory.shared_memory_with_vectordb import SharedMemoryWithVectorDB
from sherpa_ai.test_utils.llms import get_llm
from sherpa_ai.utils import file_text_splitter
from langchain.docstore.document import Document


data = """Avocados are a fruit, not a vegetable. They're technically considered a single-seeded berry, believe it or not.
Expand Down Expand Up @@ -65,6 +65,7 @@ def fake_embedding(input, default_dimension=1536):
results.append([0] * default_dimension)
return results


@pytest.fixture
def mock_chroma_vector_store(external_api):
if external_api:
Expand Down Expand Up @@ -162,6 +163,29 @@ def test_shared_memory_with_vector(get_llm, mock_chroma_vector_store): # noqa F

results = shared_memory.get_by_type(EventType.result)
logger.debug(results[0].content)
expected = ["Avocados", "Eiffel Tower", "Trypophobia", "Allodoxaphobia", "Australia", "Mellifluous", "Spice Girls", "Emma Bunton", "Human teeth", "guinea pig", "Ancient Romans", "shrimp", "Amy Poehler", "shower", "Baby rabbits", "unicorn", "aeroplane", "Venus", "Nutmeg", "French Burgundy"]
assert any(item in results[0].content for item in expected), "Result does not contain any expected items"
expected = [
"Avocados",
"Eiffel Tower",
"Trypophobia",
"Allodoxaphobia",
"Australia",
"Mellifluous",
"Spice Girls",
"Emma Bunton",
"Human teeth",
"guinea pig",
"Ancient Romans",
"shrimp",
"Amy Poehler",
"shower",
"Baby rabbits",
"unicorn",
"aeroplane",
"Venus",
"Nutmeg",
"French Burgundy",
]
assert any(
item in results[0].content for item in expected
), "Result does not contain any expected items"
assert len(results) == 1
5 changes: 3 additions & 2 deletions src/tests/unit_tests/scrape/test_prompt_reconstructor.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from sherpa_ai.scrape.prompt_reconstructor import PromptReconstructor
from sherpa_ai.test_utils.llms import get_llm


# Assuming that 'your_module' contains the 'PromptReconstructor' class


Expand Down Expand Up @@ -33,12 +34,12 @@ def test_reconstruct_prompt_with_link_inside_succeeds(
mock_get_link_from_slack_client_conversation,
mock_scrape_with_url,
mock_chunk_and_summarize,
get_llm
get_llm,
):
question = "Here's a <https://google.com>"
slack_message = ""
llm = get_llm(__file__, test_reconstruct_prompt_with_link_inside_succeeds.__name__)
reconstructor = PromptReconstructor(question, slack_message , llm)
reconstructor = PromptReconstructor(question, slack_message, llm)
with patch(
"sherpa_ai.scrape.prompt_reconstructor.chunk_and_summarize",
return_value=mock_chunk_and_summarize,
Expand Down

0 comments on commit c8e76ea

Please sign in to comment.