Jina AI Python SDK
Project description
JinaAI Python SDK
The JinaAI Python SDK is an efficient instrument that smoothly brings the power of JinaAI's products — SceneXplain, PromptPerfect, Rationale, BestBanner, and JinaChat — into Python applications. Acting as a sturdy interface for JinaAI's APIs, this SDK lets you effortlessly formulate and fine-tune prompts, thus streamlining application development.
Installing
Package manager
Using pip:
$ pip install jinaai
API secrets
To generate an API secret, you need to authenticate on each respective platform's API tab:
Note: Each secret is product-specific and cannot be interchanged. If you're planning to use multiple products, you'll need to generate a separate secret for each.
Example usage
Import the SDK and instantiate a new client with your authentication secrets:
from jinaai import JinaAI
jinaai = JinaAI(
secrets = {
'promptperfect-secret': 'XXXXXX',
'scenex-secret': 'XXXXXX',
'rationale-secret': 'XXXXXX',
'jinachat-secret': 'XXXXXX',
'bestbanner-secret': 'XXXXXX',
}
)
Describe images:
descriptions = jinaai.describe(
'https://picsum.photos/200'
)
Evaluate situations:
decisions = jinaai.decide(
'Going to Paris this summer',
{ 'analysis': 'proscons' }
)
Optimize prompts:
prompts = jinaai.optimize(
'Write an Hello World function in Python'
)
Generate complex answers:
output = jinaai.generate(
'Give me a recipe for a pizza with pineapple'
)
Create images from text:
output = jinaai.imagine(
'A controversial fusion of sweet pineapple and savory pizza.'
)
Use APIs together:
situations = [toBase64(img) for img in [
'factory-1.png',
'factory-2.png',
'factory-3.png',
'factory-4.png',
]]
descriptions = jinaai.describe(situations)
prompt1 = [
'Do any of those situations present a danger?',
'Reply with [YES] or [NO] and explain why',
*['SITUATION:\n' + desc['output'] for i, desc in enumerate(descriptions['results'])]
]
analysis = jinaai.generate('\n'.join(prompt1))
prompt2 = [
'What should be done first to make those situations safer?',
'I only want the most urgent situation',
*['SITUATION:\n' + desc['output'] for i, desc in enumerate(descriptions['results'])]
]
recommendation = jinaai.generate('\n'.join(propmt2))
swot = jinaai.decide(
recommendation['output'],
{ 'analysis': 'swot' }
)
banners = jinaai.imagine(
*[desc['output'] for i, desc in enumerate(descriptions['results'])]
)
Raw Output
You can retrieve the raw output of each APIs by passing raw: True in the options:
descriptions = jinaai.describe(
'https://picsum.photos/200',
{ 'raw': True }
)
print(descriptions['raw'])
Custom Base Urls
Custom base Urls can be passed directly in the client's constructor:
jinaai = JinaAI(
baseUrls={
'promptperfect': 'https://promptperfect-customurl.jina.ai',
'scenex': 'https://scenex-customurl.jina.ai',
'rationale': 'https://rationale-customurl.jina.ai',
'jinachat': 'https://jinachat-customurl.jina.ai',
'bestbanner': 'https://bestbanner-customurl.jina.ai',
}
)
API Documentation
JinaAi.describe
output = JinaAI.describe(input, options)
- Input
VARIABLE TYPE VALUE input str / str array Image URL or Base64
- Options
VARIABLE TYPE VALUE options dict options['algorithm'] None / str Aqua / Bolt / Comet / Dune / Ember / Flash / Glide / Hearth / Inception / Jelly options['features'] None / str array high_quality, question_answer, tts, opt-out, json options['languages'] None / str array en, cn, de, fr, it... options['question'] None / str Question related to the picture(s) options['style'] None / str default / concise / prompt options['output_length'] None / number options['json_schema'] None / dict options['callback_url'] None / string
- Output
VARIABLE TYPE VALUE output dict output['results'] dict array results[0]['output'] str The picture description results[0]['i18n'] dict Contains one key for each item in languages ...i18n['cn'] str The translated picture description ...i18n['cn'] dict array Only for Hearth algorithm ...i18n['cn'][0] dict ...i18n['cn'][0]['message'] str ...i18n['cn'][0]['isNarrator'] boolean ...i18n['cn'][0]['name'] str ...i18n['cn'] dict array Only for Inception algorithm ...i18n['cn'][0] dict ...i18n['cn'][0]['summary'] str ...i18n['cn'][0]['events'] dict array ...['events']['description'] str ...['events']['timestamp'] str results[0]['tts'] dict Only for Hearth algorithm ...tts['cn'] str Contains the url to the tts file results[0]['ssml'] dict Only for Hearth algorithm ...ssml['cn'] str Contains the url to the ssml file
JinaAi.optimize
output = JinaAI.optimize(input, options)
- Input
VARIABLE TYPE VALUE input str / str array Image URL or Base64 / prompt to optimize
- Options
VARIABLE TYPE VALUE options dict options['targetModel'] None / str chatgpt / gpt-4 / stablelm-tuned-alpha-7b / claude / cogenerate / text-davinci-003 / dalle / sd / midjourney / kandinsky / lexica options['features'] None / str array preview, no_spam, shorten, bypass_ethics, same_language, always_en, high_quality, redo_original_image, variable_subs, template_run options['iterations'] None / number Default: 1 options['previewSettings'] None / dict Contains the settings for the preview ...previewSettings['temperature'] number Example: 0.9 ...previewSettings['topP'] number Example: 0.9 ...previewSettings['topK'] number Example: 0 ...previewSettings['frequencyPenalty'] number Example: 0 ...previewSettings['presencePenalty'] number Example: 0 options['previewVariables'] None / dict Contains one key for each variables in the prompt ...previewVariables['var1'] str The value of the variable options['timeout'] Number Default: 20000 options['target_language'] None / str en / cn / de / fr / it...
- Output
VARIABLE TYPE VALUE output dict output['results'] dict array results[0]['output'] str The optimized prompt
JinaAi.decide
output = JinaAI.decide(input, options)
- Input
VARIABLE TYPE VALUE input str / str array Decision to evaluate
- Options
VARIABLE TYPE VALUE options dict options['analysis'] None / str proscons / swot / multichoice / outcomes options['style'] None / str concise / professional / humor / sarcastic / childish / genZ options['profileId'] None / str The id of the Personas you want to use
- Output
VARIABLE TYPE VALUE output dict output['results'] dict array results[0]['proscons'] None / dict ...proscons['pros'] dict Contains one key for each pros ...proscons['pros']['pros1'] str The explanation of the pros ...proscons['cons'] dict Contains one key for each cons ...proscons['cons']['cons1'] str The explanation of the cons ...proscons['bestChoice'] str ...proscons['conclusion'] str ...proscons['confidenceScore'] number results[0]['swot'] None / dict ...swot['strengths'] dict Contains one key for each strength ...swot['strengths']['str1'] str The explanation of the strength ...swot['weaknesses'] dict Contains one key for each weakness ...swot['weaknesses']['weak1'] str The explanation of the weakness ...swot['opportunities'] dict Contains one key for each opportunity ...swot['opportunities']['opp1'] str The explanation of the opportunity ...swot['threats'] dict Contains one key for each threat ...swot['threats']['thre1'] str The explanation of the threat ...swot['bestChoice'] str ...swot['conclusion'] str ...swot['confidenceScore'] number results[0]['multichoice'] None / dict Contains one key for each choice ...multichoice['choice1'] str The value of the choice results[0]['outcomes'] None / dict array ...outcomes[0]['children'] None / dict array a recursive array of results['outcomes'] ...outcomes[0]['label'] str ...outcomes[0]['sentiment'] str
JinaAi.generate
output = JinaAI.generate(input, options)
- Input
VARIABLE TYPE VALUE input str / str array Image URL or Base64 / prompt
- Options
VARIABLE TYPE VALUE options dict options['role'] None / str user / assistant options['name'] None / str The name of the author of this message options['chatId'] None / str The id of the conversation to continue options['stream'] None / boolean Whether to stream back partial progress, Default: false options['temperature'] None / number Default: 1 options['top_p'] None / str Default: 1 options['stop'] None / str / str array Up to 4 sequences where the API will stop generating further tokens options['max_tokens'] None / number Default: infinite options['presence_penalty'] None / number Number between -2.0 and 2.0, Default: 0 options['frequency_penalty'] None / number Number between -2.0 and 2.0, Default: 0 options['logit_bias'] None / dict The likelihood for a token to appear in the completion ...logit_bias['tokenId'] number Bias value from -100 to 100 options['image'] str The attached image of the message. The image can be either a URL or a base64-encoded string
- Output
VARIABLE TYPE VALUE output dict output['output'] str The generated answer output['chatId'] str The chatId to continue the conversation
JinaAi.imagine
output = JinaAI.imagine(input, options)
- Input
VARIABLE TYPE VALUE input str / str array Prompt
- Options
VARIABLE TYPE VALUE options dict options['style'] None / str default / photographic / minimalist / flat
- Output
VARIABLE TYPE VALUE output dict output['results'] dict array results[0]['output'] array array of 4 image urls
JinaAi.utils
outout = JinaAI.utils.image_to_base64(input)
VARIABLE TYPE VALUE input str Image path on disk output str Base64 image
outout = JinaAI.utils.is_url(input)
VARIABLE TYPE VALUE input str output boolean
outout = JinaAI.utils.is_base64(input)
VARIABLE TYPE VALUE input str output boolean
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jinaai-0.2.10.tar.gz.
File metadata
- Download URL: jinaai-0.2.10.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a4990eec0c557e99e96d81981da4f244757af990143f214ca2029abafb6205d
|
|
| MD5 |
17295788c0526decca58f9b63563424f
|
|
| BLAKE2b-256 |
3a5a3c5062541d0cddf33d3295a2ec696aa45ee199e61341c831e96cdde96d16
|
File details
Details for the file jinaai-0.2.10-py3-none-any.whl.
File metadata
- Download URL: jinaai-0.2.10-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c22659283eb258d3616337e0f8e2414156b47fd18248e6a6e7c70030fa85c05c
|
|
| MD5 |
562290290e29cdf02477d7350a980513
|
|
| BLAKE2b-256 |
a996a379d7a65f151bc5da59d6fb22d7b116790e9352c08022acbfaff1e61a14
|