Observed since 20 Oct, 23:18 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
AgentSearch: An open source framework and dataset for webscale local search.
AgentSearch is a framework for powering search agents by seamlessly integrating LLM technologies from various providers with different search engines. This integration enables search agents to perform a wide range of functions through Retrieval-Augmented Generation (RAG), including summarizing search results, generating new queries, and retrieving detailed downstream results.
pip install agent-search
Get your free API key from SciPhi and set it in your environment:
export SCIPHI_API_KEY=$MY_SCIPHI_API_KEY
Call a pre-configured search agent endpoint:
# Requires SCIPHI_API_KEY in the environment
from agent_search import SciPhi
client = SciPhi()
# Search, then summarize result and generate related queries
agent_summary = client.get_search_rag_response(query='latest news', search_provider='bing', llm_model='SciPhi/Sensei-7B-V1')
print(agent_summary)
# { 'response': '...', 'other_queries': '...', 'search_results': '...' }
Standalone searches and from the AgentSearch search engine are supported:
# Requires SCIPHI_API_KEY in the environment
from agent_search import SciPhi
client = SciPhi()
# Perform a search
search_response = client.search(query='Quantum Field Theory', search_provider='agent-search')
print(search_response)
# [{ 'score': '.89', 'url': 'https://...', 'metadata': {...} }]
Code your own custom search agent workflow:
# Requires SCIPHI_API_KEY in the environment
from agent_search import SciPhi
client = SciPhi()
# Specify instructions for the task
instruction = "Your task is to perform retrieval augmented generation (RAG) over the given query and search results. Return your answer in a json format that includes a summary of the search results and a list of related queries."
query = "What is Fermat's Last Theorem?"
# construct search context
search_response = client.search(query=query, search_provider='agent-search')
search_context = "\n\n".join(
f"{idx + 1}. Title: {item['title']}\nURL: {item['url']}\nText: {item['text']}"
for idx, item in enumerate(search_response)
).encode('utf-8')
# Prefix to enforce a JSON response
json_response_prefix = '{"summary":'
# Prepare a prompt
formatted_prompt = f"### Instruction:{instruction}\n\nQuery:\n{query}\n\nSearch Results:\n${search_context}\n\nQuery:\n{query}\n### Response:\n{json_response_prefix}",
# Generate a completion with Sensei-7B-V1
completion = json_response_prefix + client.completion(formatted_prompt, llm_model_name="SciPhi/Sensei-7B-V1")
print(completion)
# {
# "summary": "\nFermat's Last Theorem is a mathematical proposition first prop ... ",
# "other_queries": ["The role of elliptic curves in the proof of Fermat's Last Theorem", ...]
# }
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.0 | 14 Jan 2024 | 9 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 23:18 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:7493c97f73d0e829f659064cd6f74c651583f2631f87c7b10d3b18ba64dc1f91