Python SDK
AI21 Studio Python SDK指南
该 SDK 支持与 AI21 Studio 的所有模型和服务进行交互,包括 Jurassic-2 和任务特定模型。
设置
要开始使用 AI21 的 SDK,您需要先安装它。为此,只需运行以下命令:
终端
$ pip install ai21
API 密钥
在开始使用 SDK 之前,您需要从AI21 Studio获取 API 密钥。获得 API 密钥后,您可以在 Python 代码中全局设置它,如下所示:
Python
import ai21
ai21.api_key = <YOUR_API_KEY>
建立提示
要使用 Jurassic-2 语言模型生成文本,您需要提供模型完成的提示。我们建议遵循我们的快速工程最佳实践以实现最佳结果。
以下是您可以使用的几个提示示例:
“零射击”提示:
Python
prompt = "These are a few of my favorite"
“很少射击”提示:
Python
prompt = """
Complete the following sentence.
Sentence: These are a few of my favorite
Completion: things. Cream-colored ponies and crisp apple strudels.
##
Complete the following sentence.
Sentence: These are a few of my favorite
Completion: rock bands: The Beatles, The Doors, Fleetwood Mac.
##
Complete the following sentence.
Sentence: These are a few of my favorite
Completion:
"""
侏罗纪2
Jurassic-2 与 Python SDK 代码示例
以下是 AI21 Python SDK 与 Jurassic-2 模型交互的示例用法,演示了一些常用参数:
Python
import ai21
ai21.api_key = <YOUR_API_KEY>
# J2 Mid
response_mid = ai21.Completion.execute(
model="j2-mid",
prompt="These are a few of my favorite",
numResults=1,
maxTokens=2,
temperature=0.4,
topKReturn=0,
topP=1,
stopSequences=["##"]
)
print(response_mid)
通过自定义这些参数,您可以控制生成文本的内容和样式。有关可用选项的完整列表,请查看我们的完整 API页面。
所有 Jurassic-2 模型都可以使用相同的 ai21.Completion.execute() 函数进行交互,包括 j2-light、j2-mid 和 j2-ultra。
回复
以下是执行 j2-mid 模型的响应对象的示例:
JSON
{
"id":"94078cb6-687e-4262-ef8f-1d7c2b0dbd2b",
"prompt":{
"text":"These are a few of my favorite",
"tokens":[
{
"generatedToken":{
"token":"▁These▁are",
"logprob":-8.824776649475098,
"raw_logprob":-8.824776649475098
},
"topTokens":"None",
"textRange":{
"start":0,
"end":9
}
},
{
"generatedToken":{
"token":"▁a▁few",
"logprob":-4.798709869384766,
"raw_logprob":-4.798709869384766
},
"topTokens":"None",
"textRange":{
"start":9,
"end":15
}
},
{
"generatedToken":{
"token":"▁of▁my▁favorite",
"logprob":-1.0864331722259521,
"raw_logprob":-1.0864331722259521
},
"topTokens":"None",
"textRange":{
"start":15,
"end":30
}
}
]
},
"completions":[
{
"data":{
"text":" things –",
"tokens":[
{
"generatedToken":{
"token":"▁things",
"logprob":-0.0003219324571546167,
"raw_logprob":-0.47372230887413025
},
"topTokens":"None",
"textRange":{
"start":0,
"end":7
}
},
{
"generatedToken":{
"token":"▁–",
"logprob":-7.797079563140869,
"raw_logprob":-4.319167613983154
},
"topTokens":"None",
"textRange":{
"start":7,
"end":9
}
}
]
},
"finishReason":{
"reason":"length",
"length":2
}
}
]
}
响应是一个嵌套数据结构,包含有关已处理请求、提示和完成的信息。在顶层,响应具有以下字段:
ID
已处理请求的唯一字符串。重复的相同请求会收到不同的 ID。id
迅速的
其中包括原始文本、标记及其对数概率,以及每个位置的前 K 个替代标记(如果需要)。它有两个嵌套字段:prompt
text
(细绳)tokens
(TokenData列表)
完成情况
完成列表,包括原始文本、标记和对数概率。完成的数量与请求的数量相对应。每个完成都有两个嵌套字段:numResults
data
,其中包含用于完成的(字符串)和令牌(TokenData 列表)。text
finishReason
,一个嵌套数据结构,描述了此完成终止生成的原因。
代币数据
TokenData 对象提供有关提示和补全中每个标记的详细信息。它包括以下字段:
生成的令牌:
该字段由两个嵌套字段组成:generatedToken
token
:令牌的字符串表示形式。logprob
:应用采样参数作为浮点值后令牌的预测对数概率。raw_logprob
:令牌的原始预测对数概率作为浮点值。对于无关紧要的值(即 , ),我们得到。temperature=1``topP=1``raw_logprob=logprob
顶级代币
该字段是该位置的前 K 个替代令牌的列表,根据请求参数按概率排序。如果设置为 0,则该字段将为空。topTokens``topKReturn``topKReturn
列表中的每个令牌包括:
token
:替代标记的字符串表示形式。logprob
:替代令牌的预测对数概率作为浮点值。
文本范围
该字段指示解码后的文本字符串中标记的开始和结束偏移量:textRange
start
:解码后的文本字符串中标记的起始索引。end
:解码后的文本字符串中标记的结束索引。
特定任务模型
使用 Python SDK 代码示例解释 API
Python
import ai21
ai21.api_key = <YOUR_API_KEY>
response = ai21.Paraphrase.execute(
text="You only live once, but if you do it right, once is enough.",
style="general"
)
print(response.summaries[0].text)
注意:此 API 将针对每个请求返回最多 10 个建议释义的列表。在这里阅读更多内容。
带有 Python SDK 的语法错误纠正 (GEC) API 代码示例
Python
import ai21
ai21.api_key = <YOUR_API_KEY>
response = ai21.GEC.execute(
text="jazzz is a great stile off music",
)
print(response.corrections[0].suggestion)
print(response.corrections[0].startIndex)
print(response.corrections[0].endIndex)
print(response.corrections[0]['originalText'])
print(response.corrections[0]['correctionType'])
注意:此 API 可以返回 7 种不同类型的语法错误更正:、、、、和。在这里阅读更多内容。Grammar``Missing Word``Punctuation``Spelling``Word Repetition``Wrong Word
使用 Python SDK 的文本改进 API 代码示例
Python
import ai21
ai21.api_key = <YOUR_API_KEY>
response = ai21.Improvements.execute(
text="Affiliated with the profession of project management, I have ameliorated myself with a different set of hard skills as well as soft skills",
types=["fluency", "vocabulary/specificity"]
)
print(response.improvements[0].originalText)
print(response.improvements[0].suggestions)
print(response.improvements[0].suggestions[0])
print(response.improvements[0].improvementType)
print(response['improvements'][1].startIndex)
print(response['improvements'][1].endIndex)
注意:此 API 最多可返回 5 种不同的文本改进:、、、和。在这里阅读更多内容。types``fluency``vocabulary/specificity``vocabulary/variety``clarity/short-sentences``clarity/conciseness
使用Python SDK代码示例总结API
Python
import ai21
ai21.api_key = <YOUR_API_KEY>
response = ai21.Summarize.execute(
source="https://en.wikipedia.org/wiki/Koala",
sourceType="URL"
)
print(response.summary)
注意:可以是或。在这里阅读更多内容。sourceType``"URL"``"TEXT"
使用 Python SDK 的文本分割 API 代码示例
Python
import ai21
ai21.api_key = <YOUR_API_KEY>
response = ai21.Segmentation.execute(
source="https://www.ai21.com/blog/summarizing-legal-documents-for-different-personas-using-ai21-studio",
sourceType="URL"
)
print(response.segments[0].segmentText)
print(response.segments[0].segmentType)
注意:可以是或。在这里阅读更多内容。sourceType``"URL"``"TEXT"