chore(api/core): apply ruff reformatting (#7624)

This commit is contained in:
Bowen Liang
2024-09-10 17:00:20 +08:00
committed by GitHub
parent 178730266d
commit 2cf1187b32
724 changed files with 21180 additions and 21123 deletions

View File

@@ -11,34 +11,26 @@ class PerplexityProvider(BuiltinToolProviderController):
def _validate_credentials(self, credentials: dict[str, Any]) -> None:
headers = {
"Authorization": f"Bearer {credentials.get('perplexity_api_key')}",
"Content-Type": "application/json"
"Content-Type": "application/json",
}
payload = {
"model": "llama-3.1-sonar-small-128k-online",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello"
}
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello"},
],
"max_tokens": 5,
"temperature": 0.1,
"top_p": 0.9,
"stream": False
"stream": False,
}
try:
response = requests.post(PERPLEXITY_API_URL, json=payload, headers=headers)
response.raise_for_status()
except requests.RequestException as e:
raise ToolProviderCredentialValidationError(
f"Failed to validate Perplexity API key: {str(e)}"
)
raise ToolProviderCredentialValidationError(f"Failed to validate Perplexity API key: {str(e)}")
if response.status_code != 200:
raise ToolProviderCredentialValidationError(

View File

@@ -8,65 +8,60 @@ from core.tools.tool.builtin_tool import BuiltinTool
PERPLEXITY_API_URL = "https://api.perplexity.ai/chat/completions"
class PerplexityAITool(BuiltinTool):
def _parse_response(self, response: dict) -> dict:
"""Parse the response from Perplexity AI API"""
if 'choices' in response and len(response['choices']) > 0:
message = response['choices'][0]['message']
if "choices" in response and len(response["choices"]) > 0:
message = response["choices"][0]["message"]
return {
'content': message.get('content', ''),
'role': message.get('role', ''),
'citations': response.get('citations', [])
"content": message.get("content", ""),
"role": message.get("role", ""),
"citations": response.get("citations", []),
}
else:
return {'content': 'Unable to get a valid response', 'role': 'assistant', 'citations': []}
return {"content": "Unable to get a valid response", "role": "assistant", "citations": []}
def _invoke(self,
user_id: str,
tool_parameters: dict[str, Any],
) -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]:
def _invoke(
self,
user_id: str,
tool_parameters: dict[str, Any],
) -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]:
headers = {
"Authorization": f"Bearer {self.runtime.credentials['perplexity_api_key']}",
"Content-Type": "application/json"
"Content-Type": "application/json",
}
payload = {
"model": tool_parameters.get('model', 'llama-3.1-sonar-small-128k-online'),
"model": tool_parameters.get("model", "llama-3.1-sonar-small-128k-online"),
"messages": [
{
"role": "system",
"content": "Be precise and concise."
},
{
"role": "user",
"content": tool_parameters['query']
}
{"role": "system", "content": "Be precise and concise."},
{"role": "user", "content": tool_parameters["query"]},
],
"max_tokens": tool_parameters.get('max_tokens', 4096),
"temperature": tool_parameters.get('temperature', 0.7),
"top_p": tool_parameters.get('top_p', 1),
"top_k": tool_parameters.get('top_k', 5),
"presence_penalty": tool_parameters.get('presence_penalty', 0),
"frequency_penalty": tool_parameters.get('frequency_penalty', 1),
"stream": False
"max_tokens": tool_parameters.get("max_tokens", 4096),
"temperature": tool_parameters.get("temperature", 0.7),
"top_p": tool_parameters.get("top_p", 1),
"top_k": tool_parameters.get("top_k", 5),
"presence_penalty": tool_parameters.get("presence_penalty", 0),
"frequency_penalty": tool_parameters.get("frequency_penalty", 1),
"stream": False,
}
if 'search_recency_filter' in tool_parameters:
payload['search_recency_filter'] = tool_parameters['search_recency_filter']
if 'return_citations' in tool_parameters:
payload['return_citations'] = tool_parameters['return_citations']
if 'search_domain_filter' in tool_parameters:
if isinstance(tool_parameters['search_domain_filter'], str):
payload['search_domain_filter'] = [tool_parameters['search_domain_filter']]
elif isinstance(tool_parameters['search_domain_filter'], list):
payload['search_domain_filter'] = tool_parameters['search_domain_filter']
if "search_recency_filter" in tool_parameters:
payload["search_recency_filter"] = tool_parameters["search_recency_filter"]
if "return_citations" in tool_parameters:
payload["return_citations"] = tool_parameters["return_citations"]
if "search_domain_filter" in tool_parameters:
if isinstance(tool_parameters["search_domain_filter"], str):
payload["search_domain_filter"] = [tool_parameters["search_domain_filter"]]
elif isinstance(tool_parameters["search_domain_filter"], list):
payload["search_domain_filter"] = tool_parameters["search_domain_filter"]
response = requests.post(url=PERPLEXITY_API_URL, json=payload, headers=headers)
response.raise_for_status()
valuable_res = self._parse_response(response.json())
return [
self.create_json_message(valuable_res),
self.create_text_message(json.dumps(valuable_res, ensure_ascii=False, indent=2))
self.create_text_message(json.dumps(valuable_res, ensure_ascii=False, indent=2)),
]