-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
1 parent
b01a803
commit 6e04990
Showing
10 changed files
with
2 additions
and
769 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,50 +1,2 @@ | ||
import json | ||
from typing import List, Optional | ||
|
||
from phi.document import Document | ||
from phi.knowledge.website import WebsiteKnowledgeBase | ||
from phi.llm.agent.base import BaseAgent | ||
from phi.utils.log import logger | ||
|
||
|
||
class WebsiteAgent(BaseAgent): | ||
def __init__(self, knowledge_base: Optional[WebsiteKnowledgeBase] = None): | ||
super().__init__(name="website_agent") | ||
self.knowledge_base: Optional[WebsiteKnowledgeBase] = knowledge_base | ||
|
||
if self.knowledge_base is not None and isinstance(self.knowledge_base, WebsiteKnowledgeBase): | ||
self.register(self.add_website_to_knowledge_base) | ||
else: | ||
self.register(self.read_website) | ||
|
||
def add_website_to_knowledge_base(self, url: str) -> str: | ||
"""This function adds a websites content to the knowledge base. | ||
NOTE: The website must start with https:// and should be a valid website. | ||
USE THIS FUNCTION TO GET INFORMATION ABOUT PRODUCTS FROM THE INTERNET. | ||
:param url: The url of the website to add. | ||
:return: 'Success' if the website was added to the knowledge base. | ||
""" | ||
if self.knowledge_base is None: | ||
return "Knowledge base not provided" | ||
|
||
logger.debug(f"Adding to knowledge base: {url}") | ||
self.knowledge_base.urls.append(url) | ||
logger.debug("Loading knowledge base.") | ||
self.knowledge_base.load(recreate=False) | ||
return "Success" | ||
|
||
def read_website(self, url: str) -> str: | ||
"""This function reads a website and returns the content. | ||
:param url: The url of the website to read. | ||
:return: Relevant documents from the website. | ||
""" | ||
from phi.document.reader.website import WebsiteReader | ||
|
||
website = WebsiteReader() | ||
|
||
logger.debug(f"Reading website: {url}") | ||
relevant_docs: List[Document] = website.read(url=url) | ||
return json.dumps([doc.to_dict() for doc in relevant_docs]) | ||
# DEPRECATED: Use phi.agent.website instead | ||
from phi.agent.website import WebsiteAgent, WebsiteKnowledgeBase # noqa: F401 |
This file was deleted.
Oops, something went wrong.