This tool will be useful in scenarios akin to RAG, where someone wants to ask questions or request the production of a summary, for instance, about a bunch of documents related to a particular topic. Currently, to fulfill such requests, the LLM needs to first `list_documents`, then `get_document_by_id` for each document. We also implement a utility functions to return documents in Markdown and HTML, since the Drive API JSON is verbose and would waste too many tokens unnecessarily. Limitations: the Markdown/HTML utilities do not handle table of contents (which I think aren't really useful here), headers, footers, or footnotes. --- This PR deprecates `list_documents` and implements `search_documents`, apart from `search_and_retrieve_documents`). This configuration makes it easier for LLMs to understand when to call each tool. Both tools had their interfaces refactored to remove Google API-specific arguments that were confusing LLMs sometimes, such as "corpora" and "support_all_drives". It now accepts arguments that better relate to expected user requests. --------- Co-authored-by: Eric Gustin <eric@arcade.dev>
10 lines
377 B
Python
10 lines
377 B
Python
import pytest
|
|
|
|
from arcade_google.doc_to_markdown import convert_document_to_markdown
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_convert_document_to_markdown(sample_document_and_expected_formats):
|
|
(sample_document, expected_markdown, _) = sample_document_and_expected_formats
|
|
markdown = convert_document_to_markdown(sample_document)
|
|
assert markdown == expected_markdown
|