- 安装
- 入门
- 参考
carbonai.auth.getAccessToken
carbonai.auth.getWhiteLabeling
carbonai.dataSources.queryUserDataSources
carbonai.dataSources.revokeAccessToken
carbonai.embeddings.getDocuments
carbonai.embeddings.getEmbeddingsAndChunks
carbonai.embeddings.uploadChunksAndEmbeddings
carbonai.files.createUserFileTags
carbonai.files.delete
carbonai.files.deleteFileTags
carbonai.files.deleteMany
carbonai.files.deleteV2
carbonai.files.getParsedFile
carbonai.files.getRawFile
carbonai.files.queryUserFiles
carbonai.files.queryUserFilesDeprecated
carbonai.files.resync
carbonai.files.upload
carbonai.files.uploadFromUrl
carbonai.files.uploadText
carbonai.health.check
carbonai.integrations.connectDataSource
carbonai.integrations.connectFreshdesk
carbonai.integrations.connectGitbook
carbonai.integrations.createAwsIamUser
carbonai.integrations.getOauthUrl
carbonai.integrations.listConfluencePages
carbonai.integrations.listDataSourceItems
carbonai.integrations.listFolders
carbonai.integrations.listGitbookSpaces
carbonai.integrations.listLabels
carbonai.integrations.listOutlookCategories
carbonai.integrations.syncConfluence
carbonai.integrations.syncDataSourceItems
carbonai.integrations.syncFiles
carbonai.integrations.syncGitbook
carbonai.integrations.syncGmail
carbonai.integrations.syncOutlook
carbonai.integrations.syncRssFeed
carbonai.integrations.syncS3Files
carbonai.organizations.callGet
carbonai.users.callGet
carbonai.users.delete
carbonai.users.toggleUserFeatures
carbonai.users.updateUsers
carbonai.utilities.fetchUrls
carbonai.utilities.fetchYoutubeTranscripts
carbonai.utilities.processSitemap
carbonai.utilities.scrapeSitemap
carbonai.utilities.scrapeWeb
carbonai.utilities.searchUrls
carbonai.webhooks.addUrl
carbonai.webhooks.deleteUrl
carbonai.webhooks.urls
- 在 Xcode 中选择 文件 > 添加包… 并将仓库 URL 输入为
https://github.com/Carbon-for-Developers/carbon-swift-sdk
。 - 从我们的 标签页面 选择最新版本编号。
- 将 CarbonAI 产品添加到 您的应用程序的目标 中。
- 将此行添加到您的
Cartfile
中。
github "Carbon-for-Developers/carbon-swift-sdk"
- 按照 Carthage 安装说明 进行操作。
- 将来,要更新到 SDK 的最新版本,请运行以下命令:
carthage update carbon-swift-sdk
- 将
source 'https://github.com/CocoaPods/Specs.git'
添加到您的Podfile
中。 - 将
pod 'CarbonAI', '~> 0.2.2'
添加到您的Podfile
中。
您的 Podfile
应该看起来像:
# Podfile
source 'https://github.com/CocoaPods/Specs.git'
target 'Example' do
pod 'CarbonAI', '~> 0.2.2'
end
- 运行
pod install
❯ pod install
Analyzing dependencies
Downloading dependencies
Installing CarbonAI 0.2.2
Generating Pods project
Integrating client project
Pod installation complete! There is 1 dependency from the Podfile and 2 total pods installed.
- 将来,要更新到 SDK 的最新版本,请运行:
pod update CarbonAI
import CarbonAI
// 1) Get an access token for a customer
let carbon = CarbonAIClient(
accessToken: nil,
apiKey: "API_KEY",
customerId: "CUSTOMER_ID"
)
let token = try await carbon.auth.getAccessToken()
// 2) Use the access token to authenticate moving forward
let carbonWithToken = CarbonAIClient(
accessToken: token!.accessToken,
apiKey: nil,
customerId: nil
)
// use SDK as usual
white_labeling = try await carbonWithToken.auth.get_white_labeling()
// etc.
获取访问令牌
let getAccessTokenResponse = try await carbonai.auth.getAccessToken()
/auth/v1/access_token
GET
返回组织是否为白标,哪些集成是白标的
:param current_user: 当前用户 :param db: 数据库会话 :return: a WhiteLabelingResponse
let getWhiteLabelingResponse = try await carbonai.auth.getWhiteLabeling()
/auth/v1/white_labeling
GET
用户数据源
let pagination = Pagination(
limit: 123,
offset: 123
)
let orderBy = OrganizationUserDataSourceOrderByColumns(
)
let orderDir = OrderDir(
)
let filters = OrganizationUserDataSourceFilters(
source: DataSourceTypeNullable.googleDrive,
ids: [
123
],
revokedAccess: false
)
let queryUserDataSourcesResponse = try await carbonai.dataSources.queryUserDataSources(
pagination: pagination,
orderBy: orderBy,
orderDir: orderDir,
filters: filters
)
pagination: Pagination
filters: OrganizationUserDataSourceFilters
OrganizationUserDataSourceResponse
/user_data_sources
POST
撤销访问令牌
let dataSourceId = 987
let revokeAccessTokenResponse = try await carbonai.dataSources.revokeAccessToken(
dataSourceId: dataSourceId
)
/revoke_access_token
POST
对于预过滤文件,使用 tags_v2
比 tags
(现在已弃用)更受欢迎。如果同时指定了 tags_v2
和 tags
,则忽略 tags
。 tags_v2
通过使用 "AND"、"OR" 和否定逻辑启用构建复杂过滤器。以下输入作为示例
{
"OR": [
{
"key": "subject",
"value": "holy-bible",
"negate": false
},
{
"key": "person-of-interest",
"value": "jesus christ",
"negate": false
},
{
"key": "genre",
"value": "religion",
"negate": true
}
{
"AND": [
{
"key": "subject",
"value": "tao-te-ching",
"negate": false
},
{
"key": "author",
"value": "lao-tzu",
"negate": false
}
]
}
]
}
在这种情况下,将按以下方式过滤文件
- "subject" = "holy-bible" OR
- "person-of-interest" = "jesus christ" OR
- "genre" != "religion" OR
- "subject" = "tao-te-ching" AND "author" = "lao-tzu"
请注意,查询的顶级必须是一个 "OR" 或 "AND" 数组。目前,嵌套限制为 3。对于带 "key"、"value" 和 "negate" 键的标签块,以下类型规则适用
- "key" 不可选,必须是一个
string
- "value" 不可选,可以是
any
或 list[any
] - "negate" 是可选的,必须是
true
或false
。如果存在且为true
,则在结果查询中否定过滤块。默认为false
。
查询嵌入时,您可以从请求中可选地指定 media_type
参数。默认情况下(如果未设置),它等于 "TEXT"。这意味着查询将针对已解析为文本的文件执行(目前,这涵盖了所有文件,除了图像文件)。如果等于 "IMAGE",则针对图像文件(目前为 .jpg
和 .png
文件)执行查询。您可以视此字段为在 file_ids
上设置的任何过滤器之上的额外过滤器。
当 hybrid_search
设置为 true 时,在信息检索过程中使用关键字搜索和语义搜索的组合来排名和选择候选嵌入。默认情况下,这些搜索方法在排名过程中具有相等的权重。要调整每种搜索方法的权重(或 "重要性"),您可以使用 hybrid_search_tuning_parameters
属性。不同调整参数的说明如下
weight_a
: 分配给语义搜索的权重weight_b
: 分配给关键字搜索的权重
您必须确保所有 sum(weight_a, weight_b,..., weight_n)
(对于所有 n 权重)都等于 1。等式具有 0.001 的误差容限,以解决可能的浮点问题。
为了在一组文档中使用混合搜索为客户,需要启用两个标志
- 使用
/modify_user_configuration
接口为顾客启用sparse_vectors
。此请求的负载体如下所示
{
"configuration_key_name": "sparse_vectors",
"value": {
"enabled": true
}
}
- 确保您想要在文档上执行搜索的混合搜索已启用。对于
/uploadfile
接口,可以通过设置以下查询参数来实现:generate_sparse_vectors=true
Carbon 支持多种模型用于生成文件嵌入。对于图像,我们支持 Vertex AI 的多模态模型;对于文本,我们支持 OpenAI 的 text-embedding-ada-002
和 Cohere 的 embed-multilingual-v3.0。可以通过 embedding_model
参数指定模型(在 /embeddings
的 POST 身体中,以及在 /uploadfile
中的查询参数)。如果未提供模型,则默认使用 text-embedding-ada-002
。在执行嵌入查询时,将考虑使用指定模型生成的文件嵌入。例如,如果文件 A 和 B 使用 OPENAI
生成嵌入,而文件 C 和 D 使用 COHERE_MULTILINGUAL_V3
生成嵌入,则默认情况下,查询将只考虑文件 A 和 B。如果将 COHERE_MULTILINGUAL_V3
作为 embedding_model
在 /embeddings
中指定,则只考虑文件 C 和 D。请确保您想要在查询中考虑的所有文件的嵌入都通过同一模型生成。目前,请勿将 VERTEX_MULTIMODAL
作为 embedding_model
设置。此模型在 Carbon 检测到图像文件时会自动使用。
let query = "query_example"
let k = 987
let tags = "TODO"
let queryVector = [
123
]
let fileIds = [
123
]
let parentFileIds = [
123
]
let tagsV2 = "TODO"
let includeTags = true
let includeVectors = true
let includeRawFile = true
let hybridSearch = true
let hybridSearchTuningParameters = HybridSearchTuningParamsNullable(
weightA: 123,
weightB: 123
)
let mediaType = FileContentTypesNullable(
)
let embeddingModel = EmbeddingGeneratorsNullable(
)
let getDocumentsResponse = try await carbonai.embeddings.getDocuments(
query: query,
k: k,
tags: tags,
queryVector: queryVector,
fileIds: fileIds,
parentFileIds: parentFileIds,
tagsV2: tagsV2,
includeTags: includeTags,
includeVectors: includeVectors,
includeRawFile: includeRawFile,
hybridSearch: hybridSearch,
hybridSearchTuningParameters: hybridSearchTuningParameters,
mediaType: mediaType,
embeddingModel: embeddingModel
)
针对要获取相关块和嵌入的查询。
要返回的相关块的数量。
一个标签集合,用于限定搜索范围。已弃用并可能在未来移除。
可选的查询向量,用于获取相关块和嵌入。必须使用在搜索过程中生成嵌入的同一模型生成。不能同时提供 query
和 query_vector
。
可选的文件 ID 列表,用于限定搜索范围。
可选的父文件 ID 列表,用于限定搜索范围。父文件描述了一个文件所属的文件(例如文件夹)
一个标签集合,用于限定搜索范围。使用此选项代替已弃用的 tags
。
标志,用于控制是否在响应中包含每个块的标签。
标志,用于控制是否在响应中包含嵌入向量。
标志,用于控制是否在响应中包含每个块的原始文件的签名 URL。
标志,用于控制是否执行混合搜索。
混合搜索调优参数:HybridSearchTuningParamsNullable
/embeddings
POST
检索嵌入和内容
let filters = EmbeddingsAndChunksFilters(
userFileId: 123,
embeddingModel: EmbeddingGeneratorsNullable.openai
)
let pagination = Pagination(
limit: 123,
offset: 123
)
let orderBy = EmbeddingsAndChunksOrderByColumns(
)
let orderDir = OrderDir(
)
let includeVectors = true
let getEmbeddingsAndChunksResponse = try await carbonai.embeddings.getEmbeddingsAndChunks(
filters: filters,
pagination: pagination,
orderBy: orderBy,
orderDir: orderDir,
includeVectors: includeVectors
)
pagination: Pagination
/text_chunks
POST
上传块和嵌入
let embeddingModel = EmbeddingGenerators(
)
let chunksAndEmbeddings = [
SingleChunksAndEmbeddingsUploadInput(
fileId: 123,
chunkSize: 123,
chunkOverlap: 123,
chunksAndEmbeddings: [
ChunksAndEmbeddings(
chunkNumber: 123,
chunk: "chunk_example",
embedding: [
123
]
)
]
)
]
let overwriteExisting = true
let chunksOnly = true
let customCredentials = "TODO"
let uploadChunksAndEmbeddingsResponse = try await carbonai.embeddings.uploadChunksAndEmbeddings(
embeddingModel: embeddingModel,
chunksAndEmbeddings: chunksAndEmbeddings,
overwriteExisting: overwriteExisting,
chunksOnly: chunksOnly,
customCredentials: customCredentials
)
/upload_chunks_and_embeddings
POST
标签是一个键值对,可以添加到文件中。这个对可以用于搜索(例如嵌入搜索)以缩小搜索范围。文件可以有任意数量的标签。以下是不能使用的保留键:
- db_embedding_id
- organization_id
- user_id
- organization_user_file_id
Carbon 目前支持两种标签值的类型 - string
和 list
。键只能是 string
。如果使用了 string
和 list
以外的值,它们会自动转换为字符串(例如,4 会变成 "4")。
let tags = "TODO"
let organizationUserFileId = 987
let createUserFileTagsResponse = try await carbonai.files.createUserFileTags(
tags: tags,
organizationUserFileId: organizationUserFileId
)
/create_user_file_tags
POST
删除文件端点
let fileId = 987
let deleteResponse = try await carbonai.files.delete(
fileId: fileId
)
/deletefile/{file_id}
DELETE
删除文件标签
let tags = [
"inner_example"
]
let organizationUserFileId = 987
let deleteFileTagsResponse = try await carbonai.files.deleteFileTags(
tags: tags,
organizationUserFileId: organizationUserFileId
)
/delete_user_file_tags
POST
删除文件端点
let fileIds = [
123
]
let syncStatuses = [
ExternalFileSyncStatuses.delayed
]
let deleteNonSyncedOnly = true
let sendWebhook = true
let deleteChildFiles = true
let deleteManyResponse = try await carbonai.files.deleteMany(
fileIds: fileIds,
syncStatuses: syncStatuses,
deleteNonSyncedOnly: deleteNonSyncedOnly,
sendWebhook: sendWebhook,
deleteChildFiles: deleteChildFiles
)
/delete_files
POST
删除文件 V2 端点
let filters = OrganizationUserFilesToSyncFilters(
tags: "TODO",
source: SourceProperty(
),
name: "name_example",
tagsV2: "TODO",
ids: [
123
],
externalFileIds: [
"externalFileIds_example"
],
syncStatuses: [
ExternalFileSyncStatuses.delayed
],
parentFileIds: [
123
],
organizationUserDataSourceId: [
123
],
embeddingGenerators: [
EmbeddingGenerators.openai
],
rootFilesOnly: false,
includeAllChildren: false,
nonSyncedOnly: false,
requestIds: [
"requestIds_example"
]
)
let sendWebhook = true
let deleteV2Response = try await carbonai.files.deleteV2(
filters: filters,
sendWebhook: sendWebhook
)
filters: OrganizationUserFilesToSyncFilters
/delete_files_v2
POST
此路由已弃用。请使用 /user_files_v2
代替。
let fileId = 987
let getParsedFileResponse = try await carbonai.files.getParsedFile(
fileId: fileId
)
/parsed_file/{file_id}
GET
此路由已弃用。请使用 /user_files_v2
代替。
let fileId = 987
let getRawFileResponse = try await carbonai.files.getRawFile(
fileId: fileId
)
/raw_file/{file_id}
GET
对于预过滤文件,使用 tags_v2
比 tags
(现在已弃用)更受欢迎。如果同时指定了 tags_v2
和 tags
,则忽略 tags
。 tags_v2
通过使用 "AND"、"OR" 和否定逻辑启用构建复杂过滤器。以下输入作为示例
{
"OR": [
{
"key": "subject",
"value": "holy-bible",
"negate": false
},
{
"key": "person-of-interest",
"value": "jesus christ",
"negate": false
},
{
"key": "genre",
"value": "religion",
"negate": true
}
{
"AND": [
{
"key": "subject",
"value": "tao-te-ching",
"negate": false
},
{
"key": "author",
"value": "lao-tzu",
"negate": false
}
]
}
]
}
在这种情况下,将按以下方式过滤文件
- "subject" = "holy-bible" OR
- "person-of-interest" = "jesus christ" OR
- "genre" != "religion" OR
- "subject" = "tao-te-ching" AND "author" = "lao-tzu"
请注意,查询的顶级必须是一个 "OR" 或 "AND" 数组。目前,嵌套限制为 3。对于带 "key"、"value" 和 "negate" 键的标签块,以下类型规则适用
- "key" 不可选,必须是一个
string
- "value" 不可选,可以是
any
或 list[any
] - "negate" 是可选的,必须是
true
或false
。如果存在且为true
,则在结果查询中否定过滤块。默认为false
。
let pagination = Pagination(
limit: 123,
offset: 123
)
let orderBy = OrganizationUserFilesToSyncOrderByTypes(
)
let orderDir = OrderDir(
)
let filters = OrganizationUserFilesToSyncFilters(
tags: "TODO",
source: SourceProperty(
),
name: "name_example",
tagsV2: "TODO",
ids: [
123
],
externalFileIds: [
"externalFileIds_example"
],
syncStatuses: [
ExternalFileSyncStatuses.delayed
],
parentFileIds: [
123
],
organizationUserDataSourceId: [
123
],
embeddingGenerators: [
EmbeddingGenerators.openai
],
rootFilesOnly: false,
includeAllChildren: false,
nonSyncedOnly: false,
requestIds: [
"requestIds_example"
]
)
let includeRawFile = true
let includeParsedTextFile = true
let includeAdditionalFiles = true
let queryUserFilesResponse = try await carbonai.files.queryUserFiles(
pagination: pagination,
orderBy: orderBy,
orderDir: orderDir,
filters: filters,
includeRawFile: includeRawFile,
includeParsedTextFile: includeParsedTextFile,
includeAdditionalFiles: includeAdditionalFiles
)
pagination: Pagination
filters: OrganizationUserFilesToSyncFilters
/user_files_v2
POST
此路由已弃用。请使用 /user_files_v2
代替。
let pagination = Pagination(
limit: 123,
offset: 123
)
let orderBy = OrganizationUserFilesToSyncOrderByTypes(
)
let orderDir = OrderDir(
)
let filters = OrganizationUserFilesToSyncFilters(
tags: "TODO",
source: SourceProperty(
),
name: "name_example",
tagsV2: "TODO",
ids: [
123
],
externalFileIds: [
"externalFileIds_example"
],
syncStatuses: [
ExternalFileSyncStatuses.delayed
],
parentFileIds: [
123
],
organizationUserDataSourceId: [
123
],
embeddingGenerators: [
EmbeddingGenerators.openai
],
rootFilesOnly: false,
includeAllChildren: false,
nonSyncedOnly: false,
requestIds: [
"requestIds_example"
]
)
let includeRawFile = true
let includeParsedTextFile = true
let includeAdditionalFiles = true
let queryUserFilesDeprecatedResponse = try await carbonai.files.queryUserFilesDeprecated(
pagination: pagination,
orderBy: orderBy,
orderDir: orderDir,
filters: filters,
includeRawFile: includeRawFile,
includeParsedTextFile: includeParsedTextFile,
includeAdditionalFiles: includeAdditionalFiles
)
pagination: Pagination
filters: OrganizationUserFilesToSyncFilters
/user_files
POST
重新同步文件
let fileId = 987
let chunkSize = 987
let chunkOverlap = 987
let forceEmbeddingGeneration = true
let resyncResponse = try await carbonai.files.resync(
fileId: fileId,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
forceEmbeddingGeneration: forceEmbeddingGeneration
)
/resync_file
POST
此端点用于直接将本地文件上传到 Carbon。POST 请求应该是 multipart 表单请求。请注意,目前set_page_as_boundary
查询参数仅适用于 PDF。
- 代码片段大小(token数量):
- 代码片段重叠(token数量):
skip_embedding_generation
:是否跳过生成代码片段和嵌入表示set_page_as_boundary
:如上所述embedding_model
:用于为文档片段生成嵌入表示的模型use_ocr
:是否在生成代码片段之前使用OCR作为预处理步骤(目前仅适用于PDF文件)generate_sparse_vectors
:是否为文件生成稀疏向量。对于混合搜索是必需的。prepend_filename_to_chunks
:是否将文件名附加到代码片段文本前
Carbon 支持多种模型用于生成文件嵌入。对于图像,我们支持 Vertex AI 的多模态模型;对于文本,我们支持 OpenAI 的 text-embedding-ada-002
和 Cohere 的 embed-multilingual-v3.0。可以通过 embedding_model
参数指定模型(在 /embeddings
的 POST 身体中,以及在 /uploadfile
中的查询参数)。如果未提供模型,则默认使用 text-embedding-ada-002
。在执行嵌入查询时,将考虑使用指定模型生成的文件嵌入。例如,如果文件 A 和 B 使用 OPENAI
生成嵌入,而文件 C 和 D 使用 COHERE_MULTILINGUAL_V3
生成嵌入,则默认情况下,查询将只考虑文件 A 和 B。如果将 COHERE_MULTILINGUAL_V3
作为 embedding_model
在 /embeddings
中指定,则只考虑文件 C 和 D。请确保您想要在查询中考虑的所有文件的嵌入都通过同一模型生成。目前,请勿将 VERTEX_MULTIMODAL
作为 embedding_model
设置。此模型在 Carbon 检测到图像文件时会自动使用。
let file = URL(string: "https://example.com")!
let chunkSize = 987
let chunkOverlap = 987
let skipEmbeddingGeneration = false
let setPageAsBoundary = false
let embeddingModel = TextEmbeddingGenerators(
)
let useOcr = false
let generateSparseVectors = false
let prependFilenameToChunks = false
let maxItemsPerChunk = 987
let parsePdfTablesWithOcr = false
let uploadResponse = try await carbonai.files.upload(
file: file,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
skipEmbeddingGeneration: skipEmbeddingGeneration,
setPageAsBoundary: setPageAsBoundary,
embeddingModel: embeddingModel,
useOcr: useOcr,
generateSparseVectors: generateSparseVectors,
prependFilenameToChunks: prependFilenameToChunks,
maxItemsPerChunk: maxItemsPerChunk,
parsePdfTablesWithOcr: parsePdfTablesWithOcr
)
处理文件时要使用的tiktoken标记的代码片段大小。
处理文件时要使用的tiktoken标记的代码片段重叠。
控制处理文件时是否生成和存储嵌入表示的标志。
控制是否将一整个页面的内容设置为代码片段中可能出现的最大内容量。仅适用于PDF文件。更多信息请查看描述路由。
用于嵌入文件片段的嵌入模型。
在处理文件时是否使用OCR。仅适用于PDF文件。对包含表格、图片和/或扫描文本的文档很有用。
是否为文件生成稀疏向量。这使得文件有可能应用于混合搜索。
是否将文件名附加到代码片段中。
每个代码片段中的对象数量。仅适用于csv、tsv、xlsx和json文件。
当启用use_ocr
时是否使用丰富的表格解析。
/uploadfile
POST
从URL创建上传文件
let url = "url_example"
let fileName = "fileName_example"
let chunkSize = 987
let chunkOverlap = 987
let skipEmbeddingGeneration = true
let setPageAsBoundary = true
let embeddingModel = EmbeddingGenerators(
)
let generateSparseVectors = true
let useTextract = true
let prependFilenameToChunks = true
let maxItemsPerChunk = 987
let parsePdfTablesWithOcr = true
let uploadFromUrlResponse = try await carbonai.files.uploadFromUrl(
url: url,
fileName: fileName,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
skipEmbeddingGeneration: skipEmbeddingGeneration,
setPageAsBoundary: setPageAsBoundary,
embeddingModel: embeddingModel,
generateSparseVectors: generateSparseVectors,
useTextract: useTextract,
prependFilenameToChunks: prependFilenameToChunks,
maxItemsPerChunk: maxItemsPerChunk,
parsePdfTablesWithOcr: parsePdfTablesWithOcr
)
每个代码片段中的对象数量。仅适用于csv、tsv、xlsx和json文件。
/upload_file_from_url
POST
Carbon 支持多种模型用于生成文件嵌入。对于图像,我们支持 Vertex AI 的多模态模型;对于文本,我们支持 OpenAI 的 text-embedding-ada-002
和 Cohere 的 embed-multilingual-v3.0。可以通过 embedding_model
参数指定模型(在 /embeddings
的 POST 身体中,以及在 /uploadfile
中的查询参数)。如果未提供模型,则默认使用 text-embedding-ada-002
。在执行嵌入查询时,将考虑使用指定模型生成的文件嵌入。例如,如果文件 A 和 B 使用 OPENAI
生成嵌入,而文件 C 和 D 使用 COHERE_MULTILINGUAL_V3
生成嵌入,则默认情况下,查询将只考虑文件 A 和 B。如果将 COHERE_MULTILINGUAL_V3
作为 embedding_model
在 /embeddings
中指定,则只考虑文件 C 和 D。请确保您想要在查询中考虑的所有文件的嵌入都通过同一模型生成。目前,请勿将 VERTEX_MULTIMODAL
作为 embedding_model
设置。此模型在 Carbon 检测到图像文件时会自动使用。
let contents = "contents_example"
let name = "name_example"
let chunkSize = 987
let chunkOverlap = 987
let skipEmbeddingGeneration = true
let overwriteFileId = 987
let embeddingModel = EmbeddingGeneratorsNullable(
)
let generateSparseVectors = true
let uploadTextResponse = try await carbonai.files.uploadText(
contents: contents,
name: name,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
skipEmbeddingGeneration: skipEmbeddingGeneration,
overwriteFileId: overwriteFileId,
embeddingModel: embeddingModel,
generateSparseVectors: generateSparseVectors
)
/upload_text
POST
健康
let checkResponse = try await carbonai.health.check()
/health
GET
连接数据源
let authentication = AuthenticationProperty(
source: "TODO",
accessToken: "accessToken_example",
refreshToken: "refreshToken_example",
workspaceId: "workspaceId_example",
tenantName: "tenantName_example",
siteName: "siteName_example",
subdomain: "subdomain_example",
accessTokenSecret: "accessTokenSecret_example",
username: "username_example",
zoteroId: "zoteroId_example",
organizationName: "organizationName_example",
domain: "domain_example",
apiKey: "apiKey_example",
accessKey: "accessKey_example",
accessKeySecret: "accessKeySecret_example"
)
let syncOptions = SyncOptions(
tags: "TODO",
chunkSize: 123,
chunkOverlap: 123,
skipEmbeddingGeneration: false,
embeddingModel: EmbeddingGeneratorsNullable.openai,
generateSparseVectors: false,
prependFilenameToChunks: false,
maxItemsPerChunk: 123,
syncFilesOnConnection: true,
setPageAsBoundary: false
)
let connectDataSourceResponse = try await carbonai.integrations.connectDataSource(
authentication: authentication,
syncOptions: syncOptions
)
同步选项:SyncOptions
/integrations/connect
POST
参考此文章获取API密钥https://support.freshdesk.com/en/support/solutions/articles/215517。确保您的API密钥拥有读取您账户解决方案的权限,并且您处于付费方案中。一旦您拥有API密钥,您就可以使用您的freshdesk域名发送请求到该端点。这将自动同步您的“解决方案”标签中的文章。以下附加参数可用于关联数据到同步的文章或修改同步行为。
let domain = "domain_example"
let apiKey = "apiKey_example"
let tags = "TODO"
let chunkSize = 987
let chunkOverlap = 987
let skipEmbeddingGeneration = true
let embeddingModel = EmbeddingGeneratorsNullable(
)
let generateSparseVectors = true
let prependFilenameToChunks = true
let syncFilesOnConnection = true
let requestId = "requestId_example"
let connectFreshdeskResponse = try await carbonai.integrations.connectFreshdesk(
domain: domain,
apiKey: apiKey,
tags: tags,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
skipEmbeddingGeneration: skipEmbeddingGeneration,
embeddingModel: embeddingModel,
generateSparseVectors: generateSparseVectors,
prependFilenameToChunks: prependFilenameToChunks,
syncFilesOnConnection: syncFilesOnConnection,
requestId: requestId
)
/integrations/freshdesk
POST
您需要访问令牌才能连接您的Gitbook账户。注意,权限将由生成访问令牌的用户定义,因此请确保您有权访问您要同步的空间。有关更多详细信息,请参阅此文章https://developer.gitbook.com/gitbook-api/authentication。此外,您需要指定您将从中同步数据的组织名称。
let organization = "organization_example"
let accessToken = "accessToken_example"
let tags = "TODO"
let chunkSize = 987
let chunkOverlap = 987
let skipEmbeddingGeneration = true
let embeddingModel = EmbeddingGenerators(
)
let generateSparseVectors = true
let prependFilenameToChunks = true
let syncFilesOnConnection = true
let requestId = "requestId_example"
let connectGitbookResponse = try await carbonai.integrations.connectGitbook(
organization: organization,
accessToken: accessToken,
tags: tags,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
skipEmbeddingGeneration: skipEmbeddingGeneration,
embeddingModel: embeddingModel,
generateSparseVectors: generateSparseVectors,
prependFilenameToChunks: prependFilenameToChunks,
syncFilesOnConnection: syncFilesOnConnection,
requestId: requestId
)
/integrations/gitbook
POST
创建一个新的IAM用户,对他有权
- 列出所有存储桶。
- 从特定存储桶和对象中读取以与Carbon同步。确保任何未来的存储桶或对象都具有相同的权限。
let accessKey = "accessKey_example"
let accessKeySecret = "accessKeySecret_example"
let createAwsIamUserResponse = try await carbonai.integrations.createAwsIamUser(
accessKey: accessKey,
accessKeySecret: accessKeySecret
)
/integrations/s3
POST
此端点可用于生成以下URL
- OAuth基础连接器的OAuth URL
- 用于文件同步的URL,如果用户已经拥有有效的访问令牌,则跳过OAuth流程并将其带到成功状态。
let service = DataSourceType(
)
let tags = TODO
let scope = "scope_example"
let chunkSize = 987
let chunkOverlap = 987
let skipEmbeddingGeneration = true
let embeddingModel = EmbeddingGeneratorsNullable(
)
let zendeskSubdomain = "zendeskSubdomain_example"
let microsoftTenant = "microsoftTenant_example"
let sharepointSiteName = "sharepointSiteName_example"
let confluenceSubdomain = "confluenceSubdomain_example"
let generateSparseVectors = true
let prependFilenameToChunks = true
let maxItemsPerChunk = 987
let salesforceDomain = "salesforceDomain_example"
let syncFilesOnConnection = true
let setPageAsBoundary = true
let dataSourceId = 987
let connectingNewAccount = true
let requestId = "requestId_example"
let useOcr = true
let parsePdfTablesWithOcr = true
let getOauthUrlResponse = try await carbonai.integrations.getOauthUrl(
service: service,
tags: tags,
scope: scope,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
skipEmbeddingGeneration: skipEmbeddingGeneration,
embeddingModel: embeddingModel,
zendeskSubdomain: zendeskSubdomain,
microsoftTenant: microsoftTenant,
sharepointSiteName: sharepointSiteName,
confluenceSubdomain: confluenceSubdomain,
generateSparseVectors: generateSparseVectors,
prependFilenameToChunks: prependFilenameToChunks,
maxItemsPerChunk: maxItemsPerChunk,
salesforceDomain: salesforceDomain,
syncFilesOnConnection: syncFilesOnConnection,
setPageAsBoundary: setPageAsBoundary,
dataSourceId: dataSourceId,
connectingNewAccount: connectingNewAccount,
requestId: requestId,
useOcr: useOcr,
parsePdfTablesWithOcr: parsePdfTablesWithOcr
)
每个代码片段中的对象数量。仅适用于csv、tsv、xlsx和json文件。
用于指定Carbon是否应在授权完成后自动尝试同步所有文件。这仅支持部分连接器,对于其他连接器将被忽略。支持的连接器:Intercom, Zendesk, Gitbook, Confluence, Salesforce, Freshdesk。
用于指定要从多个已连接的数据源同步的数据源。如果只有一个该类型的数据源连接或连接新账户,可以跳过。
用于连接新数据源。如果没有指定,我们将尝试根据类型和ID为现有数据源创建同步URL。
此请求ID将添加到所有使用生成的OAuth URL同步的文件
为支持的文件启用OCR。支持的格式:pdf。
/integrations/oauth_url
POST
要开始列出用户的Confluence页面,至少需要指定一个连接的Confluence账户的data_source_id
。这个基本请求将为用户在Confluence实例中能够访问的每个空间返回根页面的列表。要进一步遍历用户的页面目录,可以使用相同的data_source_id
和将parent_id
设置为前面请求中的页面ID的额外请求来访问此端点。为了方便,响应列表中每个目录项目的has_children
属性将标记哪些页面在设置为parent_id
时将返回包含页面的非空列表。
let dataSourceId = 987
let parentId = "parentId_example"
let listConfluencePagesResponse = try await carbonai.integrations.listConfluencePages(
dataSourceId: dataSourceId,
parentId: parentId
)
/integrations/confluence/list
POST
列出数据源项目
let dataSourceId = 987
let parentId = "parentId_example"
let filters = ListItemsFiltersNullable(
externalIds: [
"externalIds_example"
],
ids: [
123
],
name: "name_example",
rootFilesOnly: false
)
let pagination = Pagination(
limit: 123,
offset: 123
)
let listDataSourceItemsResponse = try await carbonai.integrations.listDataSourceItems(
dataSourceId: dataSourceId,
parentId: parentId,
filters: filters,
pagination: pagination
)
filters: ListItemsFiltersNullable
pagination: Pagination
/integrations/items/list
POST
连接您的Outlook账户后,您可以使用此端点列出Outlook上所有的文件夹。这包括“收件箱”等系统文件夹和用户创建的文件夹。
let dataSourceId = 987
let listFoldersResponse = try await carbonai.integrations.listFolders(
dataSourceId: dataSourceId
)
/integrations/outlook/user_folders
GET
连接您的Gitbook账户后,您可以使用此端点列出当前组织下所有的空间。
let dataSourceId = 987
let listGitbookSpacesResponse = try await carbonai.integrations.listGitbookSpaces(
dataSourceId: dataSourceId
)
/integrations/gitbook/spaces
GET
连接您的Gmail账户后,您可以使用此端点列出所有标签。用户创建的标签类型为“user”,Gmail的默认标签类型为“system”
let dataSourceId = 987
let listLabelsResponse = try await carbonai.integrations.listLabels(
dataSourceId: dataSourceId
)
/integrations/gmail/user_labels
GET
连接您的Outlook账户后,您可以使用此端点列出Outlook上所有的分类。我们目前支持最多列出250个分类。
let dataSourceId = 987
let listOutlookCategoriesResponse = try await carbonai.integrations.listOutlookCategories(
dataSourceId: dataSourceId
)
/integrations/outlook/user_categories
GET
在列出用户的Confluence账户中的页面后,选择的页面集合的ids
和连接账户的data_source_id
可以传递到此端点以将它们同步到Carbon。以下列出的附加参数可以用来关联数据到选择的页面或改变同步行为。
let dataSourceId = 987
let ids = IdsProperty(
)
let tags = "TODO"
let chunkSize = 987
let chunkOverlap = 987
let skipEmbeddingGeneration = true
let embeddingModel = EmbeddingGeneratorsNullable(
)
let generateSparseVectors = true
let prependFilenameToChunks = true
let maxItemsPerChunk = 987
let setPageAsBoundary = true
let requestId = "requestId_example"
let useOcr = true
let parsePdfTablesWithOcr = true
let syncConfluenceResponse = try await carbonai.integrations.syncConfluence(
dataSourceId: dataSourceId,
ids: ids,
tags: tags,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
skipEmbeddingGeneration: skipEmbeddingGeneration,
embeddingModel: embeddingModel,
generateSparseVectors: generateSparseVectors,
prependFilenameToChunks: prependFilenameToChunks,
maxItemsPerChunk: maxItemsPerChunk,
setPageAsBoundary: setPageAsBoundary,
requestId: requestId,
useOcr: useOcr,
parsePdfTablesWithOcr: parsePdfTablesWithOcr
)
ids: IdsProperty
每个代码片段中的对象数量。仅适用于csv、tsv、xlsx和json文件。
/integrations/confluence/sync
POST
同步数据源项目
let dataSourceId = 987
let syncDataSourceItemsResponse = try await carbonai.integrations.syncDataSourceItems(
dataSourceId: dataSourceId
)
/integrations/items/sync
POST
通过/integrations/items/sync和integrations/items/list列出文件和文件夹后,使用所选项目的外部ID作为此端点的ID以将它们同步到Carbon。Sharepoint项目需要额外的参数root_id,该参数标识文件或文件夹所在的驱动器,并存储在root_external_id中。该额外参数是可选的,如果省略它,则同步将假定项目存储在默认的“文档”驱动器中。
let dataSourceId = 987
let ids = IdsProperty(
)
let tags = "TODO"
let chunkSize = 987
let chunkOverlap = 987
let skipEmbeddingGeneration = true
let embeddingModel = EmbeddingGeneratorsNullable(
)
let generateSparseVectors = true
let prependFilenameToChunks = true
let maxItemsPerChunk = 987
let setPageAsBoundary = true
let requestId = "requestId_example"
let useOcr = true
let parsePdfTablesWithOcr = true
let syncFilesResponse = try await carbonai.integrations.syncFiles(
dataSourceId: dataSourceId,
ids: ids,
tags: tags,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
skipEmbeddingGeneration: skipEmbeddingGeneration,
embeddingModel: embeddingModel,
generateSparseVectors: generateSparseVectors,
prependFilenameToChunks: prependFilenameToChunks,
maxItemsPerChunk: maxItemsPerChunk,
setPageAsBoundary: setPageAsBoundary,
requestId: requestId,
useOcr: useOcr,
parsePdfTablesWithOcr: parsePdfTablesWithOcr
)
ids: IdsProperty
每个代码片段中的对象数量。仅适用于csv、tsv、xlsx和json文件。
/integrations/files/sync
POST
您可以使用此端点一次同步最多20个Gitbook空间。以下列出的附加参数可以用来关联数据到同步的页面或修改同步行为。
let spaceIds = [
"inner_example"
]
let dataSourceId = 987
let tags = "TODO"
let chunkSize = 987
let chunkOverlap = 987
let skipEmbeddingGeneration = true
let embeddingModel = EmbeddingGenerators(
)
let generateSparseVectors = true
let prependFilenameToChunks = true
let requestId = "requestId_example"
let syncGitbookResponse = try await carbonai.integrations.syncGitbook(
spaceIds: spaceIds,
dataSourceId: dataSourceId,
tags: tags,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
skipEmbeddingGeneration: skipEmbeddingGeneration,
embeddingModel: embeddingModel,
generateSparseVectors: generateSparseVectors,
prependFilenameToChunks: prependFilenameToChunks,
requestId: requestId
)
/integrations/gitbook/sync
POST
成功连接您的Gmail账户后,您可以通过filters参数选择与我们的同步邮件。Filters是一个包含键值对的JSON对象。它还支持AND和OR操作。目前,我们支持以下列表中有限的一组键。
label:内建Gmail标签,例如“Important”或您创建的自定义标签。
after或before:YYYY/mm/dd格式的日期(例如2023/12/31)。获取某个日期之后或之前的电子邮件。您也可以将它们组合起来获取一定时期内的电子邮件。
is:可以有以下值 - starred,important,snoozed和unread
使用指定之外的关键字或值可能会导致意外行为。
一个带有筛选器的基本查询示例可以是
{
"filters": {
"key": "label",
"value": "Test"
}
}
这将列出所有标记为“Test”的电子邮件。
您可以使用以下方式使用AND和OR操作
{
"filters": {
"AND": [
{
"key": "after",
"value": "2024/01/07"
},
{
"OR": [
{
"key": "label",
"value": "Personal"
},
{
"key": "is",
"value": "starred"
}
]
}
]
}
}
这将返回1月7日之后标记为starred或具有“Personal”标签的电子邮件。请注意,这是我们支持的最深层嵌套,即在上面的示例中,您不能在OR筛选器内部添加更多的AND/OR筛选器。
let filters = "TODO"
let tags = "TODO"
let chunkSize = 987
let chunkOverlap = 987
let skipEmbeddingGeneration = true
let embeddingModel = EmbeddingGenerators(
)
let generateSparseVectors = true
let prependFilenameToChunks = true
let dataSourceId = 987
let requestId = "requestId_example"
let syncGmailResponse = try await carbonai.integrations.syncGmail(
filters: filters,
tags: tags,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
skipEmbeddingGeneration: skipEmbeddingGeneration,
embeddingModel: embeddingModel,
generateSparseVectors: generateSparseVectors,
prependFilenameToChunks: prependFilenameToChunks,
dataSourceId: dataSourceId,
requestId: requestId
)
/integrations/gmail/sync
POST
成功连接您的Outlook账户后,您可以使用filters和folder参数选择与我们的同步邮件。 "folder"应该是您想要从Outlook同步的文件夹。默认情况下,我们从收件箱文件夹获取消息。
Filters是一个包含键值对的JSON对象。它还支持AND和OR操作。目前,我们支持以下列表中有限的一组键。
category:您在Outlook中创建的自定义类别。
after或before:YYYY/mm/dd格式的日期(例如2023/12/31)。获取某个日期之后或之前的电子邮件。您也可以将它们组合起来获取一定时期内的电子邮件。
is:可以有以下值:flagged
一个带有筛选器的基本查询示例可以是
{
"filters": {
"key": "category",
"value": "Test"
}
}
这将列出具有“Test”类别的所有电子邮件。
在相同的查询中指定自定义文件夹
{
"folder": "Folder Name",
"filters": {
"key": "category",
"value": "Test"
}
}
您可以使用以下方式使用AND和OR操作
{
"filters": {
"AND": [
{
"key": "after",
"value": "2024/01/07"
},
{
"OR": [
{
"key": "category",
"value": "Personal"
},
{
"key": "category",
"value": "Test"
},
]
}
]
}
}
这将返回1月7日之后具有Personal或Test类别的电子邮件。请注意,这是我们支持的最深层嵌套,即在上面的示例中,您不能在OR筛选器内部添加更多的AND/OR筛选器。
let filters = "TODO"
let tags = "TODO"
let folder = "folder_example"
let chunkSize = 987
let chunkOverlap = 987
let skipEmbeddingGeneration = true
let embeddingModel = EmbeddingGenerators(
)
let generateSparseVectors = true
let prependFilenameToChunks = true
let dataSourceId = 987
let requestId = "requestId_example"
let syncOutlookResponse = try await carbonai.integrations.syncOutlook(
filters: filters,
tags: tags,
folder: folder,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
skipEmbeddingGeneration: skipEmbeddingGeneration,
embeddingModel: embeddingModel,
generateSparseVectors: generateSparseVectors,
prependFilenameToChunks: prependFilenameToChunks,
dataSourceId: dataSourceId,
requestId: requestId
)
/integrations/outlook/sync
POST
Rss Feed
let url = "url_example"
let tags = "TODO"
let chunkSize = 987
let chunkOverlap = 987
let skipEmbeddingGeneration = true
let embeddingModel = EmbeddingGenerators(
)
let generateSparseVectors = true
let prependFilenameToChunks = true
let requestId = "requestId_example"
let syncRssFeedResponse = try await carbonai.integrations.syncRssFeed(
url: url,
tags: tags,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
skipEmbeddingGeneration: skipEmbeddingGeneration,
embeddingModel: embeddingModel,
generateSparseVectors: generateSparseVectors,
prependFilenameToChunks: prependFilenameToChunks,
requestId: requestId
)
/integrations/rss_feed
POST
在通过/integrations/items/sync和integrations/items/list可选地加载项目后,使用bucket名称和object键作为该端点中的ID进行同步到Carbon。以下附加参数可以将数据与所选项目关联或修改同步行为
let ids = [
S3GetFileInput(
id: "id_example",
bucket: "bucket_example"
)
]
let tags = "TODO"
let chunkSize = 987
let chunkOverlap = 987
let skipEmbeddingGeneration = true
let embeddingModel = EmbeddingGenerators(
)
let generateSparseVectors = true
let prependFilenameToChunks = true
let maxItemsPerChunk = 987
let setPageAsBoundary = true
let dataSourceId = 987
let requestId = "requestId_example"
let useOcr = true
let parsePdfTablesWithOcr = true
let syncS3FilesResponse = try await carbonai.integrations.syncS3Files(
ids: ids,
tags: tags,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
skipEmbeddingGeneration: skipEmbeddingGeneration,
embeddingModel: embeddingModel,
generateSparseVectors: generateSparseVectors,
prependFilenameToChunks: prependFilenameToChunks,
maxItemsPerChunk: maxItemsPerChunk,
setPageAsBoundary: setPageAsBoundary,
dataSourceId: dataSourceId,
requestId: requestId,
useOcr: useOcr,
parsePdfTablesWithOcr: parsePdfTablesWithOcr
)
每个代码片段中的对象数量。仅适用于csv、tsv、xlsx和json文件。
/integrations/s3/files
POST
获取组织
let callGetResponse = try await carbonai.organizations.callGet()
/organization
GET
用户端点
let customerId = "customerId_example"
let callGetResponse = try await carbonai.users.callGet(
customerId: customerId
)
/user
POST
删除用户
let customerIds = [
"inner_example"
]
let deleteResponse = try await carbonai.users.delete(
customerIds: customerIds
)
/delete_users
POST
切换用户功能
let configurationKeyName = "configurationKeyName_example"
let value = "TODO"
let toggleUserFeaturesResponse = try await carbonai.users.toggleUserFeatures(
configurationKeyName: configurationKeyName,
value: value
)
/modify_user_configuration
POST
更新用户
let customerIds = [
"inner_example"
]
let autoSyncEnabledSources = AutoSyncEnabledSourcesProperty(
)
let updateUsersResponse = try await carbonai.users.updateUsers(
customerIds: customerIds,
autoSyncEnabledSources: autoSyncEnabledSources
)
组织提供的用户ID列表
自动同步启用源:AutoSyncEnabledSourcesProperty
/update_users
POST
从网页中提取所有URL。
参数:url (str): 网页的URL
返回值:FetchURLsResponse:一个响应对象,包含从网页中提取的URL列表和网页内容。
let url = "url_example"
let fetchUrlsResponse = try await carbonai.utilities.fetchUrls(
url: url
)
/fetch_urls
GET
从YouTube视频中获取英文字幕。
参数:id (str): YouTube视频的ID。raw (bool): 是否返回原始字幕。默认为False。
返回值:dict:一个字典,包含YouTube视频的字幕。
let id = "id_example"
let raw = false
let fetchYoutubeTranscriptsResponse = try await carbonai.utilities.fetchYoutubeTranscripts(
id: id,
raw: raw
)
/fetch_youtube_transcript
GET
从网站地图中检索所有URL,随后可以与我们的web_scrape
端点一起使用。
let url = "url_example"
let processSitemapResponse = try await carbonai.utilities.processSitemap(
url: url
)
/process_sitemap
GET
从网站地图中提取所有URL,并对每个URL执行网络抓取。
参数:sitemap_url (str): 网站地图的URL
返回值:dict:一个响应对象,包含抓取作业的状态信息。
let url = "url_example"
let tags = "TODO"
let maxPagesToScrape = 987
let chunkSize = 987
let chunkOverlap = 987
let skipEmbeddingGeneration = true
let enableAutoSync = true
let generateSparseVectors = true
let prependFilenameToChunks = true
let htmlTagsToSkip = [
"inner_example"
]
let cssClassesToSkip = [
"inner_example"
]
let cssSelectorsToSkip = [
"inner_example"
]
let embeddingModel = EmbeddingGenerators(
)
let scrapeSitemapResponse = try await carbonai.utilities.scrapeSitemap(
url: url,
tags: tags,
maxPagesToScrape: maxPagesToScrape,
chunkSize: chunkSize,
chunkOverlap: chunkOverlap,
skipEmbeddingGeneration: skipEmbeddingGeneration,
enableAutoSync: enableAutoSync,
generateSparseVectors: generateSparseVectors,
prependFilenameToChunks: prependFilenameToChunks,
htmlTagsToSkip: htmlTagsToSkip,
cssClassesToSkip: cssClassesToSkip,
cssSelectorsToSkip: cssSelectorsToSkip,
embeddingModel: embeddingModel
)
/scrape_sitemap
POST
对指定的网页URL执行网络抓取。我们的网络爬虫完全兼容JavaScript,支持回溯深度,使您能够高效地从目标网站提取所有内容。
let scrapeWebResponse = try await carbonai.utilities.scrapeWeb(
)
[WebscrapeRequest]
/web_scrape
POST
执行网络搜索并获取相关URL的列表。
例如,当您搜索“与mRNA相关的内容”时,您将收到以下链接列表:
- https://tomrenz.substack.com/p/mrna-and-why-it-matters
- https://www.statnews.com/2020/11/10/the-story-of-mrna-how-a-once-dismissed-idea-became-a-leading-technology-in-the-covid-vaccine-race/
- https://www.statnews.com/2022/11/16/covid-19-vaccines-were-a-success-but-mrna-still-has-a-delivery-problem/
- https://joomi.substack.com/p/were-still-being-misled-about-how
随后,您可以提交这些链接到web_scrape端点,以获取各网页的内容。
参数:query (str): 要搜索的查询
返回值:FetchURLsResponse:一个响应对象,包含针对给定搜索查询的URL列表。
let query = "query_example"
let searchUrlsResponse = try await carbonai.utilities.searchUrls(
query: query
)
/search_urls
GET
添加Webhook URL
let url = "url_example"
let addUrlResponse = try await carbonai.webhooks.addUrl(
url: url
)
/add_webhook
POST
删除Webhook URL
let webhookId = 987
let deleteUrlResponse = try await carbonai.webhooks.deleteUrl(
webhookId: webhookId
)
/delete_webhook/{webhook_id}
DELETE
Webhook URL
let pagination = Pagination(
limit: 123,
offset: 123
)
let orderBy = WebhookOrderByColumns(
)
let orderDir = OrderDir(
)
let filters = WebhookFilters(
ids: [
123
]
)
let urlsResponse = try await carbonai.webhooks.urls(
pagination: pagination,
orderBy: orderBy,
orderDir: orderDir,
filters: filters
)
pagination: Pagination
filters:WebhookFilters
/webhooks
POST
此TypeScript包是由Konfig自动生成的