Skip to content
This repository has been archived by the owner on Oct 12, 2022. It is now read-only.

Commit

Permalink
Upgrade version and add support for the new AI endpoints
Browse files Browse the repository at this point in the history
Upgrade version to 0.4.0 and have support for text generation, sentiment and summarization endpoints
  • Loading branch information
proguy914629bot committed Jan 5, 2022
1 parent 322ed6a commit aee4484
Show file tree
Hide file tree
Showing 4 changed files with 462 additions and 1 deletion.
2 changes: 1 addition & 1 deletion openrobot/api_wrapper/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@

from . import _async, _sync, translate, results, error, speech

__version__ = '0.3.0.6'
__version__ = '0.4.0'
176 changes: 176 additions & 0 deletions openrobot/api_wrapper/_async.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,182 @@ async def _request(self, method: str, url: str, **kwargs) -> typing.Union[dict,

# Methods to query to API:

async def text_generation(self, text: str, *, max_length: typing.Optional[int] = None, num_return: typing.Optional[int] = 1) -> TextGenerationResult:
"""|coro|
Text Generation/Completion. This uses the /api/text-generation endpoint.
Parameters
----------
text: :class:`str`
The text to be completed/generated.
max_length: Optional[:class:`int`]
The maximum length of the generated text. Defaults to ``None``.
num_return: Optional[:class:`int`]
The number of generated texts to return. Defaults to 1.
Raises
------
:exc:`Forbidden`
API Returned a 403 HTTP Status Code.
:exc:`BadRequest`
API Returned a 400 HTTP Status Code.
:exc:`InternalServerError`
API Returned a 500 HTTP Status Code.
Returns
-------
:class:`TextGenerationResult`
The text generation result returned by the API.
"""

js = await self._request('POST', '/api/text-generation', data={'text': text, 'max_length': max_length, 'num_return': num_return})
return TextGenerationResult(js)

async def text_generation_get(self, task_id: str) -> TextGenerationResult:
"""|coro|
Gets the status of a text generation task. This uses the /api/text-generation/{task_id} endpoint.
Parameters
----------
task_id: :class:`str`
The task ID of the text generation task.
Raises
------
:exc:`Forbidden`
API Returned a 403 HTTP Status Code.
:exc:`BadRequest`
API Returned a 400 HTTP Status Code.
:exc:`InternalServerError`
API Returned a 500 HTTP Status Code.
Returns
-------
:class:`TextGenerationResult`
The text generation result returned by the API.
"""

js = await self._request('GET', f'/api/text-generation/{quote(task_id)}')
return TextGenerationResult(js)

async def sentiment(self, text: str) -> SentimentResult:
"""|coro|
Performs a Sentiment check on a text.
Parameters
----------
text: :class:`str`
The text to be checked.
Raises
------
:exc:`Forbidden`
API Returned a 403 HTTP Status Code.
:exc:`BadRequest`
API Returned a 400 HTTP Status Code.
:exc:`InternalServerError`
API Returned a 500 HTTP Status Code.
Returns
-------
:class:`SentimentResult`
The sentiment result returned by the API.
"""

js = await self._request('POST', '/api/sentiment', data={'text': text})
return SentimentResult(js)

async def sentiment_get(self, task_id: str) -> SentimentResult:
"""|coro|
Gets the status of a sentiment task. This uses the /api/sentiment/{task_id} endpoint.
Parameters
----------
task_id: :class:`str`
The task ID of the sentiment task.
Raises
------
:exc:`Forbidden`
API Returned a 403 HTTP Status Code.
:exc:`BadRequest`
API Returned a 400 HTTP Status Code.
:exc:`InternalServerError`
API Returned a 500 HTTP Status Code.
Returns
-------
:class:`SentimentResult`
The sentiment result returned by the API.
"""

js = await self._request('GET', f'/api/sentiment/{quote(task_id)}')
return SentimentResult(js)

async def summarization(self, text: str, *, max_length: typing.Optional[int] = None, min_length: typing.Optional[int] = 1) -> SummarizationResult:
"""|coro|
Summarizes a text. This uses the /api/summarization endpoint.
Parameters
----------
text: :class:`str`
The text to be summarized.
max_length: Optional[:class:`int`]
The maximum length of the summary. Defaults to ``None``.
min_length: Optional[:class:`int`]
The minimum length of the summary. Defaults to ``None``.
Raises
------
:exc:`Forbidden`
API Returned a 403 HTTP Status Code.
:exc:`BadRequest`
API Returned a 400 HTTP Status Code.
:exc:`InternalServerError`
API Returned a 500 HTTP Status Code.
Returns
-------
:class:`SummarizationResult`
The summarization result returned by the API.
"""

js = await self._request('POST', '/api/summarization', data={'text': text, 'max_length': max_length, 'min_length': min_length})
return SummarizationResult(js)

async def summarization_get(self, task_id: str) -> SummarizationResult:
"""|coro|
Gets the status of a summarization task. This uses the /api/summarization/{task_id} endpoint.
Parameters
----------
task_id: :class:`str`
The task ID of the summarization task.
Raises
------
:exc:`Forbidden`
API Returned a 403 HTTP Status Code.
:exc:`BadRequest`
API Returned a 400 HTTP Status Code.
:exc:`InternalServerError`
API Returned a 500 HTTP Status Code.
Returns
-------
:class:`SummarizationResult`
The summarization result returned by the API.
"""

js = await self._request('GET', f'/api/summarization/{quote(task_id)}')
return SummarizationResult(js)

async def lyrics(self, query: str) -> LyricResult:
"""|coro|
Expand Down
170 changes: 170 additions & 0 deletions openrobot/api_wrapper/_sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,176 @@ def _request(self, method: str, url: str, **kwargs):

# Methods to query to API:

def text_generation(self, text: str, *, max_length: typing.Optional[int] = None, num_return: typing.Optional[int] = 1) -> TextGenerationResult:
"""
Text Generation/Completion. This uses the /api/text-generation endpoint.
Parameters
----------
text: :class:`str`
The text to be completed/generated.
max_length: Optional[:class:`int`]
The maximum length of the generated text. Defaults to ``None``.
num_return: Optional[:class:`int`]
The number of generated texts to return. Defaults to 1.
Raises
------
:exc:`Forbidden`
API Returned a 403 HTTP Status Code.
:exc:`BadRequest`
API Returned a 400 HTTP Status Code.
:exc:`InternalServerError`
API Returned a 500 HTTP Status Code.
Returns
-------
:class:`TextGenerationResult`
The text generation result returned by the API.
"""

js = self._request('POST', '/api/text-generation', data={'text': text, 'max_length': max_length, 'num_return': num_return})
return TextGenerationResult(js)

def text_generation_get(self, task_id: str) -> TextGenerationResult:
"""
Gets the status of a text generation task. This uses the /api/text-generation/{task_id} endpoint.
Parameters
----------
task_id: :class:`str`
The task ID of the text generation task.
Raises
------
:exc:`Forbidden`
API Returned a 403 HTTP Status Code.
:exc:`BadRequest`
API Returned a 400 HTTP Status Code.
:exc:`InternalServerError`
API Returned a 500 HTTP Status Code.
Returns
-------
:class:`TextGenerationResult`
The text generation result returned by the API.
"""

js = self._request('GET', f'/api/text-generation/{quote(task_id)}')
return TextGenerationResult(js)

def sentiment(self, text: str) -> SentimentResult:
"""
Performs a Sentiment check on a text.
Parameters
----------
text: :class:`str`
The text to be checked.
Raises
------
:exc:`Forbidden`
API Returned a 403 HTTP Status Code.
:exc:`BadRequest`
API Returned a 400 HTTP Status Code.
:exc:`InternalServerError`
API Returned a 500 HTTP Status Code.
Returns
-------
:class:`SentimentResult`
The sentiment result returned by the API.
"""

js = self._request('POST', '/api/sentiment', data={'text': text})
return SentimentResult(js)

def sentiment_get(self, task_id: str) -> SentimentResult:
"""
Gets the status of a sentiment task. This uses the /api/sentiment/{task_id} endpoint.
Parameters
----------
task_id: :class:`str`
The task ID of the sentiment task.
Raises
------
:exc:`Forbidden`
API Returned a 403 HTTP Status Code.
:exc:`BadRequest`
API Returned a 400 HTTP Status Code.
:exc:`InternalServerError`
API Returned a 500 HTTP Status Code.
Returns
-------
:class:`SentimentResult`
The sentiment result returned by the API.
"""

js = self._request('GET', f'/api/sentiment/{quote(task_id)}')
return SentimentResult(js)

def summarization(self, text: str, *, max_length: typing.Optional[int] = None, min_length: typing.Optional[int] = 1) -> SummarizationResult:
"""
Summarizes a text. This uses the /api/summarization endpoint.
Parameters
----------
text: :class:`str`
The text to be summarized.
max_length: Optional[:class:`int`]
The maximum length of the summary. Defaults to ``None``.
min_length: Optional[:class:`int`]
The minimum length of the summary. Defaults to ``None``.
Raises
------
:exc:`Forbidden`
API Returned a 403 HTTP Status Code.
:exc:`BadRequest`
API Returned a 400 HTTP Status Code.
:exc:`InternalServerError`
API Returned a 500 HTTP Status Code.
Returns
-------
:class:`SummarizationResult`
The summarization result returned by the API.
"""

js = self._request('POST', '/api/summarization', data={'text': text, 'max_length': max_length, 'min_length': min_length})
return SummarizationResult(js)

def summarization_get(self, task_id: str) -> SummarizationResult:
"""
Gets the status of a summarization task. This uses the /api/summarization/{task_id} endpoint.
Parameters
----------
task_id: :class:`str`
The task ID of the summarization task.
Raises
------
:exc:`Forbidden`
API Returned a 403 HTTP Status Code.
:exc:`BadRequest`
API Returned a 400 HTTP Status Code.
:exc:`InternalServerError`
API Returned a 500 HTTP Status Code.
Returns
-------
:class:`SummarizationResult`
The summarization result returned by the API.
"""

js = self._request('GET', f'/api/summarization/{quote(task_id)}')
return SummarizationResult(js)

def lyrics(self, query: str) -> LyricResult:
"""
Gets the lyrics from the API.
Expand Down
Loading

0 comments on commit aee4484

Please sign in to comment.