telnyx-ai-inference-python
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
<!-- 由Telnyx OpenAPI规范自动生成,请勿编辑。 -->
Telnyx Ai Inference - Python
Telnyx AI推理 - Python
Installation
安装
bash
pip install telnyxbash
pip install telnyxSetup
配置
python
import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)All examples below assume is already initialized as shown above.
clientpython
import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # 这是默认配置,可省略
)以下所有示例均假设已按照上述方式完成初始化。
clientError Handling
错误处理
All API calls can fail with network errors, rate limits (429), validation errors (422),
or authentication errors (401). Always handle errors in production code:
python
import telnyx
try:
result = client.messages.send(to="+13125550001", from_="+13125550002", text="Hello")
except telnyx.APIConnectionError:
print("Network error — check connectivity and retry")
except telnyx.RateLimitError:
# 429: rate limited — wait and retry with exponential backoff
import time
time.sleep(1) # Check Retry-After header for actual delay
except telnyx.APIStatusError as e:
print(f"API error {e.status_code}: {e.message}")
if e.status_code == 422:
print("Validation error — check required fields and formats")Common error codes: invalid API key, insufficient permissions,
resource not found, validation error (check field formats),
rate limited (retry with exponential backoff).
401403404422429所有API调用都可能失败,原因包括网络错误、速率限制(429)、校验错误(422)或身份认证错误(401)。在生产代码中请务必做好错误处理:
python
import telnyx
try:
result = client.messages.send(to="+13125550001", from_="+13125550002", text="Hello")
except telnyx.APIConnectionError:
print("网络错误 — 检查网络连接并重试")
except telnyx.RateLimitError:
# 429: 触发速率限制 — 等待后采用指数退避策略重试
import time
time.sleep(1) # 可查看Retry-After响应头获取实际需要等待的时长
except telnyx.APIStatusError as e:
print(f"API错误 {e.status_code}: {e.message}")
if e.status_code == 422:
print("校验错误 — 检查必填字段和格式是否正确")常见错误码: API密钥无效, 权限不足, 资源不存在, 校验错误(检查字段格式), 触发速率限制(采用指数退避策略重试)。
401403404422429Important Notes
重要说明
- Pagination: List methods return an auto-paginating iterator. Use to iterate through all pages automatically.
for item in page_result:
- 分页: 列表类方法返回自动分页迭代器,使用即可自动遍历所有分页内容。
for item in page_result:
Transcribe speech to text
语音转文字转录
Transcribe speech to text. This endpoint is consistent with the OpenAI Transcription API and may be used with the OpenAI JS or Python SDK.
POST /ai/audio/transcriptionspython
response = client.ai.audio.transcribe(
model="distil-whisper/distil-large-v2",
)
print(response.text)Returns: (number), (array[object]), (string)
durationsegmentstext语音转文字转录。该接口与OpenAI转录API兼容,可通过OpenAI JS或Python SDK调用。
POST /ai/audio/transcriptionspython
response = client.ai.audio.transcribe(
model="distil-whisper/distil-large-v2",
)
print(response.text)返回值:(数字)、(对象数组)、(字符串)
durationsegmentstextCreate a chat completion
创建聊天补全
Chat with a language model. This endpoint is consistent with the OpenAI Chat Completions API and may be used with the OpenAI JS or Python SDK.
POST /ai/chat/completionsmessagesOptional: (string), (integer), (boolean), (boolean), (number), (array[string]), (object), (string), (number), (boolean), (integer), (number), (string), (number), (number), (object), (boolean), (number), (enum: none, auto, required), (array[object]), (integer), (number), (boolean)
api_key_refbest_ofearly_stoppingenable_thinkingfrequency_penaltyguided_choiceguided_jsonguided_regexlength_penaltylogprobsmax_tokensmin_pmodelnpresence_penaltyresponse_formatstreamtemperaturetool_choicetoolstop_logprobstop_puse_beam_searchpython
response = client.ai.chat.create_completion(
messages=[{
"role": "system",
"content": "You are a friendly chatbot.",
}, {
"role": "user",
"content": "Hello, world!",
}],
)
print(response)与大语言模型对话。该接口与OpenAI聊天补全API兼容,可通过OpenAI JS或Python SDK调用。
POST /ai/chat/completionsmessages可选参数:(字符串)、(整数)、(布尔值)、(布尔值)、(数字)、(字符串数组)、(对象)、(字符串)、(数字)、(布尔值)、(整数)、(数字)、(字符串)、(数字)、(数字)、(对象)、(布尔值)、(数字)、(枚举值:none、auto、required)、(对象数组)、(整数)、(数字)、(布尔值)
api_key_refbest_ofearly_stoppingenable_thinkingfrequency_penaltyguided_choiceguided_jsonguided_regexlength_penaltylogprobsmax_tokensmin_pmodelnpresence_penaltyresponse_formatstreamtemperaturetool_choicetoolstop_logprobstop_puse_beam_searchpython
response = client.ai.chat.create_completion(
messages=[{
"role": "system",
"content": "You are a friendly chatbot.",
}, {
"role": "user",
"content": "Hello, world!",
}],
)
print(response)List conversations
会话列表查询
Retrieve a list of all AI conversations configured by the user. Supports PostgREST-style query parameters for filtering. Examples are included for the standard metadata fields, but you can filter on any field in the metadata JSON object.
GET /ai/conversationspython
conversations = client.ai.conversations.list()
print(conversations.data)Returns: (date-time), (uuid), (date-time), (object), (string)
created_atidlast_message_atmetadataname获取用户配置的所有AI会话列表,支持PostgREST风格的查询参数进行筛选。文档中提供了标准元数据字段的筛选示例,你也可以基于元数据JSON对象中的任意字段进行筛选。
GET /ai/conversationspython
conversations = client.ai.conversations.list()
print(conversations.data)返回值:(日期时间)、(uuid)、(日期时间)、(对象)、(字符串)
created_atidlast_message_atmetadatanameCreate a conversation
创建会话
Create a new AI Conversation.
POST /ai/conversationsOptional: (object), (string)
metadatanamepython
conversation = client.ai.conversations.create()
print(conversation.id)Returns: (date-time), (uuid), (date-time), (object), (string)
created_atidlast_message_atmetadataname创建一个新的AI会话。
POST /ai/conversations可选参数:(对象)、(字符串)
metadatanamepython
conversation = client.ai.conversations.create()
print(conversation.id)返回值:(日期时间)、(uuid)、(日期时间)、(对象)、(字符串)
created_atidlast_message_atmetadatanameGet Insight Template Groups
获取洞察模板分组
Get all insight groups
GET /ai/conversations/insight-groupspython
page = client.ai.conversations.insight_groups.retrieve_insight_groups()
page = page.data[0]
print(page.id)Returns: (date-time), (string), (uuid), (array[object]), (string), (string)
created_atdescriptionidinsightsnamewebhook获取所有洞察分组
GET /ai/conversations/insight-groupspython
page = client.ai.conversations.insight_groups.retrieve_insight_groups()
page = page.data[0]
print(page.id)返回值:(日期时间)、(字符串)、(uuid)、(对象数组)、(字符串)、(字符串)
created_atdescriptionidinsightsnamewebhookCreate Insight Template Group
创建洞察模板分组
Create a new insight group
POST /ai/conversations/insight-groupsnameOptional: (string), (string)
descriptionwebhookpython
insight_template_group_detail = client.ai.conversations.insight_groups.insight_groups(
name="my-resource",
)
print(insight_template_group_detail.data)Returns: (date-time), (string), (uuid), (array[object]), (string), (string)
created_atdescriptionidinsightsnamewebhook创建一个新的洞察分组
POST /ai/conversations/insight-groupsname可选参数:(字符串)、(字符串)
descriptionwebhookpython
insight_template_group_detail = client.ai.conversations.insight_groups.insight_groups(
name="my-resource",
)
print(insight_template_group_detail.data)返回值:(日期时间)、(字符串)、(uuid)、(对象数组)、(字符串)、(字符串)
created_atdescriptionidinsightsnamewebhookGet Insight Template Group
查询洞察模板分组详情
Get insight group by ID
GET /ai/conversations/insight-groups/{group_id}python
insight_template_group_detail = client.ai.conversations.insight_groups.retrieve(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(insight_template_group_detail.data)Returns: (date-time), (string), (uuid), (array[object]), (string), (string)
created_atdescriptionidinsightsnamewebhook根据ID查询洞察分组
GET /ai/conversations/insight-groups/{group_id}python
insight_template_group_detail = client.ai.conversations.insight_groups.retrieve(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(insight_template_group_detail.data)返回值:(日期时间)、(字符串)、(uuid)、(对象数组)、(字符串)、(字符串)
created_atdescriptionidinsightsnamewebhookUpdate Insight Template Group
更新洞察模板分组
Update an insight template group
PUT /ai/conversations/insight-groups/{group_id}Optional: (string), (string), (string)
descriptionnamewebhookpython
insight_template_group_detail = client.ai.conversations.insight_groups.update(
group_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(insight_template_group_detail.data)Returns: (date-time), (string), (uuid), (array[object]), (string), (string)
created_atdescriptionidinsightsnamewebhook更新洞察模板分组
PUT /ai/conversations/insight-groups/{group_id}可选参数:(字符串)、(字符串)、(字符串)
descriptionnamewebhookpython
insight_template_group_detail = client.ai.conversations.insight_groups.update(
group_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(insight_template_group_detail.data)返回值:(日期时间)、(字符串)、(uuid)、(对象数组)、(字符串)、(字符串)
created_atdescriptionidinsightsnamewebhookDelete Insight Template Group
删除洞察模板分组
Delete insight group by ID
DELETE /ai/conversations/insight-groups/{group_id}python
client.ai.conversations.insight_groups.delete(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)根据ID删除洞察分组
DELETE /ai/conversations/insight-groups/{group_id}python
client.ai.conversations.insight_groups.delete(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)Assign Insight Template To Group
为分组分配洞察模板
Assign an insight to a group
POST /ai/conversations/insight-groups/{group_id}/insights/{insight_id}/assignpython
client.ai.conversations.insight_groups.insights.assign(
insight_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
group_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)将一个洞察分配到分组中
POST /ai/conversations/insight-groups/{group_id}/insights/{insight_id}/assignpython
client.ai.conversations.insight_groups.insights.assign(
insight_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
group_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)Unassign Insight Template From Group
从分组移除洞察模板
Remove an insight from a group
DELETE /ai/conversations/insight-groups/{group_id}/insights/{insight_id}/unassignpython
client.ai.conversations.insight_groups.insights.delete_unassign(
insight_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
group_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)将一个洞察从分组中移除
DELETE /ai/conversations/insight-groups/{group_id}/insights/{insight_id}/unassignpython
client.ai.conversations.insight_groups.insights.delete_unassign(
insight_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
group_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)Get Insight Templates
获取洞察模板列表
Get all insights
GET /ai/conversations/insightspython
page = client.ai.conversations.insights.list()
page = page.data[0]
print(page.id)Returns: (date-time), (uuid), (enum: custom, default), (string), (object), (string), (string)
created_atidinsight_typeinstructionsjson_schemanamewebhook获取所有洞察
GET /ai/conversations/insightspython
page = client.ai.conversations.insights.list()
page = page.data[0]
print(page.id)返回值:(日期时间)、(uuid)、(枚举值:custom、default)、(字符串)、(对象)、(字符串)、(字符串)
created_atidinsight_typeinstructionsjson_schemanamewebhookCreate Insight Template
创建洞察模板
Create a new insight
POST /ai/conversations/insightsinstructionsnameOptional: (object), (string)
json_schemawebhookpython
insight_template_detail = client.ai.conversations.insights.create(
instructions="You are a helpful assistant.",
name="my-resource",
)
print(insight_template_detail.data)Returns: (date-time), (uuid), (enum: custom, default), (string), (object), (string), (string)
created_atidinsight_typeinstructionsjson_schemanamewebhook创建一个新的洞察
POST /ai/conversations/insightsinstructionsname可选参数:(对象)、(字符串)
json_schemawebhookpython
insight_template_detail = client.ai.conversations.insights.create(
instructions="You are a helpful assistant.",
name="my-resource",
)
print(insight_template_detail.data)返回值:(日期时间)、(uuid)、(枚举值:custom、default)、(字符串)、(对象)、(字符串)、(字符串)
created_atidinsight_typeinstructionsjson_schemanamewebhookGet Insight Template
查询洞察模板详情
Get insight by ID
GET /ai/conversations/insights/{insight_id}python
insight_template_detail = client.ai.conversations.insights.retrieve(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(insight_template_detail.data)Returns: (date-time), (uuid), (enum: custom, default), (string), (object), (string), (string)
created_atidinsight_typeinstructionsjson_schemanamewebhook根据ID查询洞察
GET /ai/conversations/insights/{insight_id}python
insight_template_detail = client.ai.conversations.insights.retrieve(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(insight_template_detail.data)返回值:(日期时间)、(uuid)、(枚举值:custom、default)、(字符串)、(对象)、(字符串)、(字符串)
created_atidinsight_typeinstructionsjson_schemanamewebhookUpdate Insight Template
更新洞察模板
Update an insight template
PUT /ai/conversations/insights/{insight_id}Optional: (string), (object), (string), (string)
instructionsjson_schemanamewebhookpython
insight_template_detail = client.ai.conversations.insights.update(
insight_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(insight_template_detail.data)Returns: (date-time), (uuid), (enum: custom, default), (string), (object), (string), (string)
created_atidinsight_typeinstructionsjson_schemanamewebhook更新洞察模板
PUT /ai/conversations/insights/{insight_id}可选参数:(字符串)、(对象)、(字符串)、(字符串)
instructionsjson_schemanamewebhookpython
insight_template_detail = client.ai.conversations.insights.update(
insight_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(insight_template_detail.data)返回值:(日期时间)、(uuid)、(枚举值:custom、default)、(字符串)、(对象)、(字符串)、(字符串)
created_atidinsight_typeinstructionsjson_schemanamewebhookDelete Insight Template
删除洞察模板
Delete insight by ID
DELETE /ai/conversations/insights/{insight_id}python
client.ai.conversations.insights.delete(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)根据ID删除洞察
DELETE /ai/conversations/insights/{insight_id}python
client.ai.conversations.insights.delete(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)Get a conversation
查询会话详情
Retrieve a specific AI conversation by its ID.
GET /ai/conversations/{conversation_id}python
conversation = client.ai.conversations.retrieve(
"conversation_id",
)
print(conversation.data)Returns: (date-time), (uuid), (date-time), (object), (string)
created_atidlast_message_atmetadataname根据ID查询指定AI会话的详情。
GET /ai/conversations/{conversation_id}python
conversation = client.ai.conversations.retrieve(
"conversation_id",
)
print(conversation.data)返回值:(日期时间)、(uuid)、(日期时间)、(对象)、(字符串)
created_atidlast_message_atmetadatanameUpdate conversation metadata
更新会话元数据
Update metadata for a specific conversation.
PUT /ai/conversations/{conversation_id}Optional: (object)
metadatapython
conversation = client.ai.conversations.update(
conversation_id="550e8400-e29b-41d4-a716-446655440000",
)
print(conversation.data)Returns: (date-time), (uuid), (date-time), (object), (string)
created_atidlast_message_atmetadataname更新指定会话的元数据。
PUT /ai/conversations/{conversation_id}可选参数:(对象)
metadatapython
conversation = client.ai.conversations.update(
conversation_id="550e8400-e29b-41d4-a716-446655440000",
)
print(conversation.data)返回值:(日期时间)、(uuid)、(日期时间)、(对象)、(字符串)
created_atidlast_message_atmetadatanameDelete a conversation
删除会话
Delete a specific conversation by its ID.
DELETE /ai/conversations/{conversation_id}python
client.ai.conversations.delete(
"conversation_id",
)根据ID删除指定会话。
DELETE /ai/conversations/{conversation_id}python
client.ai.conversations.delete(
"conversation_id",
)Get insights for a conversation
获取会话洞察
Retrieve insights for a specific conversation
GET /ai/conversations/{conversation_id}/conversations-insightspython
response = client.ai.conversations.retrieve_conversations_insights(
"conversation_id",
)
print(response.data)Returns: (array[object]), (date-time), (string), (enum: pending, in_progress, completed, failed)
conversation_insightscreated_atidstatus查询指定会话的洞察信息
GET /ai/conversations/{conversation_id}/conversations-insightspython
response = client.ai.conversations.retrieve_conversations_insights(
"conversation_id",
)
print(response.data)返回值:(对象数组)、(日期时间)、(字符串)、(枚举值:pending、in_progress、completed、failed)
conversation_insightscreated_atidstatusCreate Message
创建消息
Add a new message to the conversation. Used to insert a new messages to a conversation manually ( without using chat endpoint )
POST /ai/conversations/{conversation_id}/messageroleOptional: (string), (object), (string), (date-time), (string), (array[object]), (object)
contentmetadatanamesent_attool_call_idtool_callstool_choicepython
client.ai.conversations.add_message(
conversation_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
role="user",
)向会话中添加新消息,用于手动向会话中插入消息(无需使用聊天接口)
POST /ai/conversations/{conversation_id}/messagerole可选参数:(字符串)、(对象)、(字符串)、(日期时间)、(字符串)、(对象数组)、(对象)
contentmetadatanamesent_attool_call_idtool_callstool_choicepython
client.ai.conversations.add_message(
conversation_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
role="user",
)Get conversation messages
查询会话消息列表
Retrieve messages for a specific conversation, including tool calls made by the assistant.
GET /ai/conversations/{conversation_id}/messagespython
messages = client.ai.conversations.messages.list(
"conversation_id",
)
print(messages.data)Returns: (date-time), (enum: user, assistant, tool), (date-time), (string), (array[object])
created_atrolesent_attexttool_calls查询指定会话的消息列表,包含助手发起的工具调用记录。
GET /ai/conversations/{conversation_id}/messagespython
messages = client.ai.conversations.messages.list(
"conversation_id",
)
print(messages.data)返回值:(日期时间)、(枚举值:user、assistant、tool)、(日期时间)、(字符串)、(对象数组)
created_atrolesent_attexttool_callsGet Tasks by Status
根据状态查询任务
Retrieve tasks for the user that are either , , , or based on the query string. Defaults to and .
queuedprocessingfailedsuccesspartial_successqueuedprocessingGET /ai/embeddingspython
embeddings = client.ai.embeddings.list()
print(embeddings.data)Returns: (string), (date-time), (date-time), (enum: queued, processing, success, failure, partial_success), (string), (string), (string)
bucketcreated_atfinished_atstatustask_idtask_nameuser_id根据查询字符串获取用户的任务,状态包括、、、或,默认返回和状态的任务。
queuedprocessingfailedsuccesspartial_successqueuedprocessingGET /ai/embeddingspython
embeddings = client.ai.embeddings.list()
print(embeddings.data)返回值:(字符串)、(日期时间)、(日期时间)、(枚举值:queued、processing、success、failure、partial_success)、(字符串)、(字符串)、(字符串)
bucketcreated_atfinished_atstatustask_idtask_nameuser_idEmbed documents
文档嵌入
Perform embedding on a Telnyx Storage Bucket using an embedding model. The current supported file types are:
- HTML
- txt/unstructured text files
- json
- csv
- audio / video (mp3, mp4, mpeg, mpga, m4a, wav, or webm ) - Max of 100mb file size. Any files not matching the above types will be attempted to be embedded as unstructured text.
POST /ai/embeddingsbucket_nameOptional: (integer), (integer), (object), (object)
document_chunk_overlap_sizedocument_chunk_sizeembedding_modelloaderpython
embedding_response = client.ai.embeddings.create(
bucket_name="my-bucket",
)
print(embedding_response.data)Returns: (string), (string | null), (string), (uuid), (string), (uuid)
created_atfinished_atstatustask_idtask_nameuser_id使用嵌入模型对Telnyx存储桶中的内容进行嵌入处理。当前支持的文件类型包括:
- HTML
- txt/非结构化文本文件
- json
- csv
- 音频/视频(mp3、mp4、mpeg、mpga、m4a、wav或webm)- 最大文件大小100MB。任何不符合上述类型的文件将尝试作为非结构化文本进行嵌入。
POST /ai/embeddingsbucket_name可选参数:(整数)、(整数)、(对象)、(对象)
document_chunk_overlap_sizedocument_chunk_sizeembedding_modelloaderpython
embedding_response = client.ai.embeddings.create(
bucket_name="my-bucket",
)
print(embedding_response.data)返回值:(字符串)、(字符串 | null)、(字符串)、(uuid)、(字符串)、(uuid)
created_atfinished_atstatustask_idtask_nameuser_idList embedded buckets
查询已嵌入存储桶列表
Get all embedding buckets for a user.
GET /ai/embeddings/bucketspython
buckets = client.ai.embeddings.buckets.list()
print(buckets.data)Returns: (array[string])
buckets获取用户所有已完成嵌入的存储桶。
GET /ai/embeddings/bucketspython
buckets = client.ai.embeddings.buckets.list()
print(buckets.data)返回值:(字符串数组)
bucketsGet file-level embedding statuses for a bucket
查询存储桶的文件嵌入状态
Get all embedded files for a given user bucket, including their processing status.
GET /ai/embeddings/buckets/{bucket_name}python
bucket = client.ai.embeddings.buckets.retrieve(
"bucket_name",
)
print(bucket.data)Returns: (date-time), (string), (string), (date-time), (string), (date-time)
created_aterror_reasonfilenamelast_embedded_atstatusupdated_at获取用户指定存储桶中所有已嵌入文件的处理状态。
GET /ai/embeddings/buckets/{bucket_name}python
bucket = client.ai.embeddings.buckets.retrieve(
"bucket_name",
)
print(bucket.data)返回值:(日期时间)、(字符串)、(字符串)、(日期时间)、(字符串)、(日期时间)
created_aterror_reasonfilenamelast_embedded_atstatusupdated_atDisable AI for an Embedded Bucket
禁用存储桶的AI嵌入功能
Deletes an entire bucket's embeddings and disables the bucket for AI-use, returning it to normal storage pricing.
DELETE /ai/embeddings/buckets/{bucket_name}python
client.ai.embeddings.buckets.delete(
"bucket_name",
)删除存储桶的全部嵌入数据,禁用该存储桶的AI功能,恢复为普通存储计费模式。
DELETE /ai/embeddings/buckets/{bucket_name}python
client.ai.embeddings.buckets.delete(
"bucket_name",
)Search for documents
文档相似性搜索
Perform a similarity search on a Telnyx Storage Bucket, returning the most similar document chunks to the query. Currently the only available distance metric is cosine similarity which will return a between 0 and 1. The lower the distance, the more similar the returned document chunks are to the query.
num_docsdistancePOST /ai/embeddings/similarity-searchbucket_namequeryOptional: (integer)
num_of_docspython
response = client.ai.embeddings.similarity_search(
bucket_name="my-bucket",
query="What is Telnyx?",
)
print(response.data)Returns: (number), (string), (object)
distancedocument_chunkmetadata对Telnyx存储桶执行相似性搜索,返回与查询内容最相似的个文档块。当前仅支持余弦相似度作为距离指标,返回的值范围为0到1,值越低表示返回的文档块与查询内容相似度越高。
num_docsdistancePOST /ai/embeddings/similarity-searchbucket_namequery可选参数:(整数)
num_of_docspython
response = client.ai.embeddings.similarity_search(
bucket_name="my-bucket",
query="What is Telnyx?",
)
print(response.data)返回值:(数字)、(字符串)、(对象)
distancedocument_chunkmetadataEmbed URL content
URL内容嵌入
Embed website content from a specified URL, including child pages up to 5 levels deep within the same domain. The process crawls and loads content from the main URL and its linked pages into a Telnyx Cloud Storage bucket.
POST /ai/embeddings/urlurlbucket_namepython
embedding_response = client.ai.embeddings.url(
bucket_name="my-bucket",
url="https://example.com/resource",
)
print(embedding_response.data)Returns: (string), (string | null), (string), (uuid), (string), (uuid)
created_atfinished_atstatustask_idtask_nameuser_id对指定URL的网站内容进行嵌入,包括同一域名下最多5层深度的子页面。该过程会爬取主URL及其关联页面的内容,并加载到Telnyx云存储桶中。
POST /ai/embeddings/urlurlbucket_namepython
embedding_response = client.ai.embeddings.url(
bucket_name="my-bucket",
url="https://example.com/resource",
)
print(embedding_response.data)返回值:(字符串)、(字符串 | null)、(字符串)、(uuid)、(字符串)、(uuid)
created_atfinished_atstatustask_idtask_nameuser_idGet an embedding task's status
查询嵌入任务状态
Check the status of a current embedding task. Will be one of the following:
- - Task is waiting to be picked up by a worker
queued - - The embedding task is running
processing - - Task completed successfully and the bucket is embedded
success - - Task failed and no files were embedded successfully
failure - - Some files were embedded successfully, but at least one failed
partial_success
GET /ai/embeddings/{task_id}python
embedding = client.ai.embeddings.retrieve(
"task_id",
)
print(embedding.data)Returns: (string), (string), (enum: queued, processing, success, failure, partial_success), (uuid), (string)
created_atfinished_atstatustask_idtask_name查询当前嵌入任务的状态,状态包括以下几种:
- - 任务正在等待工作节点处理
queued - - 嵌入任务正在运行
processing - - 任务执行成功,存储桶已完成嵌入
success - - 任务失败,没有文件成功完成嵌入
failure - - 部分文件嵌入成功,但至少有一个文件失败
partial_success
GET /ai/embeddings/{task_id}python
embedding = client.ai.embeddings.retrieve(
"task_id",
)
print(embedding.data)返回值:(字符串)、(字符串)、(枚举值:queued、processing、success、failure、partial_success)、(uuid)、(字符串)
created_atfinished_atstatustask_idtask_nameList fine tuning jobs
查询微调任务列表
Retrieve a list of all fine tuning jobs created by the user.
GET /ai/fine_tuning/jobspython
jobs = client.ai.fine_tuning.jobs.list()
print(jobs.data)Returns: (integer), (integer | null), (object), (string), (string), (string), (enum: queued, running, succeeded, failed, cancelled), (integer | null), (string)
created_atfinished_athyperparametersidmodelorganization_idstatustrained_tokenstraining_file获取用户创建的所有微调任务列表。
GET /ai/fine_tuning/jobspython
jobs = client.ai.fine_tuning.jobs.list()
print(jobs.data)返回值:(整数)、(整数 | null)、(对象)、(字符串)、(字符串)、(字符串)、(枚举值:queued、running、succeeded、failed、cancelled)、(整数 | null)、(字符串)
created_atfinished_athyperparametersidmodelorganization_idstatustrained_tokenstraining_fileCreate a fine tuning job
创建微调任务
Create a new fine tuning job.
POST /ai/fine_tuning/jobsmodeltraining_fileOptional: (object), (string)
hyperparameterssuffixpython
fine_tuning_job = client.ai.fine_tuning.jobs.create(
model="openai/gpt-4o",
training_file="training-data.jsonl",
)
print(fine_tuning_job.id)Returns: (integer), (integer | null), (object), (string), (string), (string), (enum: queued, running, succeeded, failed, cancelled), (integer | null), (string)
created_atfinished_athyperparametersidmodelorganization_idstatustrained_tokenstraining_file创建一个新的微调任务。
POST /ai/fine_tuning/jobsmodeltraining_file可选参数:(对象)、(字符串)
hyperparameterssuffixpython
fine_tuning_job = client.ai.fine_tuning.jobs.create(
model="openai/gpt-4o",
training_file="training-data.jsonl",
)
print(fine_tuning_job.id)返回值:(整数)、(整数 | null)、(对象)、(字符串)、(字符串)、(字符串)、(枚举值:queued、running、succeeded、failed、cancelled)、(整数 | null)、(字符串)
created_atfinished_athyperparametersidmodelorganization_idstatustrained_tokenstraining_fileGet a fine tuning job
查询微调任务详情
Retrieve a fine tuning job by .
job_idGET /ai/fine_tuning/jobs/{job_id}python
fine_tuning_job = client.ai.fine_tuning.jobs.retrieve(
"job_id",
)
print(fine_tuning_job.id)Returns: (integer), (integer | null), (object), (string), (string), (string), (enum: queued, running, succeeded, failed, cancelled), (integer | null), (string)
created_atfinished_athyperparametersidmodelorganization_idstatustrained_tokenstraining_file根据查询微调任务详情。
job_idGET /ai/fine_tuning/jobs/{job_id}python
fine_tuning_job = client.ai.fine_tuning.jobs.retrieve(
"job_id",
)
print(fine_tuning_job.id)返回值:(整数)、(整数 | null)、(对象)、(字符串)、(字符串)、(字符串)、(枚举值:queued、running、succeeded、failed、cancelled)、(整数 | null)、(字符串)
created_atfinished_athyperparametersidmodelorganization_idstatustrained_tokenstraining_fileCancel a fine tuning job
取消微调任务
Cancel a fine tuning job.
POST /ai/fine_tuning/jobs/{job_id}/cancelpython
fine_tuning_job = client.ai.fine_tuning.jobs.cancel(
"job_id",
)
print(fine_tuning_job.id)Returns: (integer), (integer | null), (object), (string), (string), (string), (enum: queued, running, succeeded, failed, cancelled), (integer | null), (string)
created_atfinished_athyperparametersidmodelorganization_idstatustrained_tokenstraining_file取消一个微调任务。
POST /ai/fine_tuning/jobs/{job_id}/cancelpython
fine_tuning_job = client.ai.fine_tuning.jobs.cancel(
"job_id",
)
print(fine_tuning_job.id)返回值:(整数)、(整数 | null)、(对象)、(字符串)、(字符串)、(字符串)、(枚举值:queued、running、succeeded、failed、cancelled)、(整数 | null)、(字符串)
created_atfinished_athyperparametersidmodelorganization_idstatustrained_tokenstraining_fileGet available models
查询可用模型列表
This endpoint returns a list of Open Source and OpenAI models that are available for use. Note: Model 's will be in the form . For example or consistent with HuggingFace naming conventions.
id{source}/{model_name}openai/gpt-4mistralai/Mistral-7B-Instruct-v0.1GET /ai/modelspython
response = client.ai.retrieve_models()
print(response.data)Returns: (integer), (string), (string), (string)
createdidobjectowned_by该接口返回可用的开源模型和OpenAI模型列表。注意:模型格式为,例如或,符合HuggingFace命名规范。
id{source}/{model_name}openai/gpt-4mistralai/Mistral-7B-Instruct-v0.1GET /ai/modelspython
response = client.ai.retrieve_models()
print(response.data)返回值:(整数)、(字符串)、(字符串)、(字符串)
createdidobjectowned_byCreate embeddings
创建向量嵌入
Creates an embedding vector representing the input text. This endpoint is compatible with the OpenAI Embeddings API and may be used with the OpenAI JS or Python SDK by setting the base URL to .
https://api.telnyx.com/v2/ai/openaiPOST /ai/openai/embeddingsinputmodelOptional: (integer), (enum: float, base64), (string)
dimensionsencoding_formatuserpython
response = client.ai.openai.embeddings.create_embeddings(
input="The quick brown fox jumps over the lazy dog",
model="thenlper/gte-large",
)
print(response.data)Returns: (array[object]), (string), (string), (object)
datamodelobjectusage生成表示输入文本的嵌入向量。该接口与OpenAI嵌入API兼容,将基础URL设置为即可通过OpenAI JS或Python SDK调用。
https://api.telnyx.com/v2/ai/openaiPOST /ai/openai/embeddingsinputmodel可选参数:(整数)、(枚举值:float、base64)、(字符串)
dimensionsencoding_formatuserpython
response = client.ai.openai.embeddings.create_embeddings(
input="The quick brown fox jumps over the lazy dog",
model="thenlper/gte-large",
)
print(response.data)返回值:(对象数组)、(字符串)、(字符串)、(对象)
datamodelobjectusageList embedding models
查询嵌入模型列表
Returns a list of available embedding models. This endpoint is compatible with the OpenAI Models API format.
GET /ai/openai/embeddings/modelspython
response = client.ai.openai.embeddings.list_embedding_models()
print(response.data)Returns: (integer), (string), (string), (string)
createdidobjectowned_by返回可用的嵌入模型列表,该接口兼容OpenAI模型API格式。
GET /ai/openai/embeddings/modelspython
response = client.ai.openai.embeddings.list_embedding_models()
print(response.data)返回值:(整数)、(字符串)、(字符串)、(字符串)
createdidobjectowned_bySummarize file content
文件内容摘要
Generate a summary of a file's contents. Supports the following text formats:
- PDF, HTML, txt, json, csv
Supports the following media formats (billed for both the transcription and summary):
- flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm
- Up to 100 MB
POST /ai/summarizebucketfilenameOptional: (string)
system_promptpython
response = client.ai.summarize(
bucket="my-bucket",
filename="data.csv",
)
print(response.data)Returns: (string)
summary生成文件内容的摘要。支持以下文本格式:
- PDF、HTML、txt、json、csv
支持以下媒体格式(按转录和摘要双重计费):
- flac、mp3、mp4、mpeg、mpga、m4a、ogg、wav、webm
- 最大文件大小100 MB
POST /ai/summarizebucketfilename可选参数:(字符串)
system_promptpython
response = client.ai.summarize(
bucket="my-bucket",
filename="data.csv",
)
print(response.data)返回值:(字符串)
summaryGet all Speech to Text batch report requests
查询所有语音转文字批量报告请求
Retrieves all Speech to Text batch report requests for the authenticated user
GET /legacy/reporting/batch_detail_records/speech_to_textpython
speech_to_texts = client.legacy.reporting.batch_detail_records.speech_to_text.list()
print(speech_to_texts.data)Returns: (date-time), (string), (date-time), (string), (string), (date-time), (enum: PENDING, COMPLETE, FAILED, EXPIRED)
created_atdownload_linkend_dateidrecord_typestart_datestatus获取当前认证用户的所有语音转文字批量报告请求
GET /legacy/reporting/batch_detail_records/speech_to_textpython
speech_to_texts = client.legacy.reporting.batch_detail_records.speech_to_text.list()
print(speech_to_texts.data)返回值:(日期时间)、(字符串)、(日期时间)、(字符串)、(字符串)、(日期时间)、(枚举值:PENDING、COMPLETE、FAILED、EXPIRED)
created_atdownload_linkend_dateidrecord_typestart_datestatusCreate a new Speech to Text batch report request
创建语音转文字批量报告请求
Creates a new Speech to Text batch report request with the specified filters
POST /legacy/reporting/batch_detail_records/speech_to_textstart_dateend_datepython
from datetime import datetime
speech_to_text = client.legacy.reporting.batch_detail_records.speech_to_text.create(
end_date=datetime.fromisoformat("2020-07-01T00:00:00-06:00"),
start_date=datetime.fromisoformat("2020-07-01T00:00:00-06:00"),
)
print(speech_to_text.data)Returns: (date-time), (string), (date-time), (string), (string), (date-time), (enum: PENDING, COMPLETE, FAILED, EXPIRED)
created_atdownload_linkend_dateidrecord_typestart_datestatus使用指定的筛选条件创建新的语音转文字批量报告请求
POST /legacy/reporting/batch_detail_records/speech_to_textstart_dateend_datepython
from datetime import datetime
speech_to_text = client.legacy.reporting.batch_detail_records.speech_to_text.create(
end_date=datetime.fromisoformat("2020-07-01T00:00:00-06:00"),
start_date=datetime.fromisoformat("2020-07-01T00:00:00-06:00"),
)
print(speech_to_text.data)返回值:(日期时间)、(字符串)、(日期时间)、(字符串)、(字符串)、(日期时间)、(枚举值:PENDING、COMPLETE、FAILED、EXPIRED)
created_atdownload_linkend_dateidrecord_typestart_datestatusGet a specific Speech to Text batch report request
查询语音转文字批量报告请求详情
Retrieves a specific Speech to Text batch report request by ID
GET /legacy/reporting/batch_detail_records/speech_to_text/{id}python
speech_to_text = client.legacy.reporting.batch_detail_records.speech_to_text.retrieve(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(speech_to_text.data)Returns: (date-time), (string), (date-time), (string), (string), (date-time), (enum: PENDING, COMPLETE, FAILED, EXPIRED)
created_atdownload_linkend_dateidrecord_typestart_datestatus根据ID查询指定的语音转文字批量报告请求
GET /legacy/reporting/batch_detail_records/speech_to_text/{id}python
speech_to_text = client.legacy.reporting.batch_detail_records.speech_to_text.retrieve(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(speech_to_text.data)返回值:(日期时间)、(字符串)、(日期时间)、(字符串)、(字符串)、(日期时间)、(枚举值:PENDING、COMPLETE、FAILED、EXPIRED)
created_atdownload_linkend_dateidrecord_typestart_datestatusDelete a Speech to Text batch report request
删除语音转文字批量报告请求
Deletes a specific Speech to Text batch report request by ID
DELETE /legacy/reporting/batch_detail_records/speech_to_text/{id}python
speech_to_text = client.legacy.reporting.batch_detail_records.speech_to_text.delete(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(speech_to_text.data)Returns: (date-time), (string), (date-time), (string), (string), (date-time), (enum: PENDING, COMPLETE, FAILED, EXPIRED)
created_atdownload_linkend_dateidrecord_typestart_datestatus根据ID删除指定的语音转文字批量报告请求
DELETE /legacy/reporting/batch_detail_records/speech_to_text/{id}python
speech_to_text = client.legacy.reporting.batch_detail_records.speech_to_text.delete(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(speech_to_text.data)返回值:(日期时间)、(字符串)、(日期时间)、(字符串)、(字符串)、(日期时间)、(枚举值:PENDING、COMPLETE、FAILED、EXPIRED)
created_atdownload_linkend_dateidrecord_typestart_datestatusGet speech to text usage report
获取语音转文字使用报告
Generate and fetch speech to text usage report synchronously. This endpoint will both generate and fetch the speech to text report over a specified time period.
GET /legacy/reporting/usage_reports/speech_to_textpython
response = client.legacy.reporting.usage_reports.retrieve_speech_to_text()
print(response.data)Returns: (object)
data同步生成并获取语音转文字使用报告。该接口可在指定时间范围内生成并获取语音转文字报告。
GET /legacy/reporting/usage_reports/speech_to_textpython
response = client.legacy.reporting.usage_reports.retrieve_speech_to_text()
print(response.data)返回值:(对象)
dataGenerate speech from text
文本转语音
Generate synthesized speech audio from text input. Returns audio in the requested format (binary audio stream, base64-encoded JSON, or an audio URL for later retrieval). Authentication is provided via the standard header.
Authorization: Bearer POST /text-to-speech/speechOptional: (object), (object), (boolean), (object), (string), (object), (enum: binary_output, base64_output), (enum: aws, telnyx, azure, elevenlabs, minimax, rime, resemble), (object), (object), (object), (string), (enum: text, ssml), (string), (object)
awsazuredisable_cacheelevenlabslanguageminimaxoutput_typeproviderresemblerimetelnyxtexttext_typevoicevoice_settingspython
response = client.text_to_speech.generate()
print(response.base64_audio)Returns: (string)
base64_audio将输入文本合成为语音音频,返回请求格式的结果(二进制音频流、base64编码的JSON或可后续获取的音频URL)。通过标准请求头进行身份认证。
Authorization: Bearer POST /text-to-speech/speech可选参数:(对象)、(对象)、(布尔值)、(对象)、(字符串)、(对象)、(枚举值:binary_output、base64_output)、(枚举值:aws、telnyx、azure、elevenlabs、minimax、rime、resemble)、(对象)、(对象)、(对象)、(字符串)、(枚举值:text、ssml)、(字符串)、(对象)
awsazuredisable_cacheelevenlabslanguageminimaxoutput_typeproviderresemblerimetelnyxtexttext_typevoicevoice_settingspython
response = client.text_to_speech.generate()
print(response.base64_audio)返回值:(字符串)
base64_audioList available voices
查询可用音色列表
Retrieve a list of available voices from one or all TTS providers. When is specified, returns voices for that provider only. Otherwise, returns voices from all providers.
providerGET /text-to-speech/voicespython
response = client.text_to_speech.list_voices()
print(response.voices)Returns: (array[object])
voices获取一个或所有TTS服务商的可用音色列表。指定参数时仅返回该服务商的音色,否则返回所有服务商的音色。
providerGET /text-to-speech/voicespython
response = client.text_to_speech.list_voices()
print(response.voices)返回值:(对象数组)
voices