34 lines
1006 B
Python
34 lines
1006 B
Python
import requests
|
|
import toml
|
|
import os
|
|
|
|
|
|
def query_to_perplexica(query):
|
|
# Retrieve the URL from an environment variable
|
|
url = os.getenv("PERPLEXICA_URL")
|
|
if not url:
|
|
raise ValueError(
|
|
"PERPLEXICA_URL environment variable not set. It may take the form: 'http://localhost:{port}/api/search'. The port number is set in the config.toml in the Perplexica directory."
|
|
)
|
|
|
|
# Request Message
|
|
message = {"focusMode": "webSearch", "query": query, "history": [["human", query]]}
|
|
|
|
response = requests.post(url, json=message)
|
|
|
|
if response.status_code == 200:
|
|
return response.json()["message"]
|
|
elif response.status_code == 400:
|
|
raise ValueError(
|
|
"The request is malformed or missing required fields, such as FocusModel or query"
|
|
)
|
|
else:
|
|
raise ValueError("Internal Server Error")
|
|
|
|
|
|
# Test Code
|
|
if __name__ == "__main__":
|
|
query = "What is Agent S?"
|
|
response = query_to_perplexica(query)
|
|
print(response)
|