dependencies: [
.package(url: "https://github.com/exyte/OpenAI")
]
要安装 OpenAI
,只需将以下行添加到您的 Podfile 中
pod 'ExyteOpenAI'
要使用 Carthage 将 OpenAI
集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "exyte/OpenAI"
⚠️ OpenAI 强烈建议客户端应用程序的开发人员通过单独的后端服务代理请求,以确保其 API 密钥的安全。 API 密钥可以访问和操作客户的账单、使用情况和组织数据,因此暴露它们会带来重大风险。
let client = OpenAI(apiKey: "YOUR_API_KEY_HERE")
let assistantPayload = CreateAssistantPayload(model: .gpt_4o, name: "My Assistant", instructions: "Be funny")
client.createAssistant(from: assistantPayload) <...>
let threadPayload = CreateThreadPayload(messages: [...], metadata: [...])
client.createThread(from: threadPayload) <...>
let messagePayload = CreateMessagePayload(role: .user, content: "Hello!")
client.createMessage(in: threadId, payload: messagePayload) <...>
client.createRun(in: threadId, payload: CreateRunPayload(assistantId: assistantId)) <...>
client.retrieveRun(id: runId, from: threadId)
let listPayload = ListPayload(after: lastMessageId)
client.listMessages(from: threadId, payload: listPayload) <...>
有关 OpenAI 助手 API 用法的更多详细信息,请参阅 platform.openai.com 和我们的 示例 部分。
为给定的聊天会话创建一个模型响应。
createChatCompletion(
from: CreateChatCompletionPayload(
model: model,
messages: [ChatCompletionMessage(role: .user, content: "Hello")]
)
)
列出并描述 API 中可用的各种模型。 可以在 platform.openai.com 上找到模型列表及其差异。
listModels()
retrieveModel(with: modelId)
deleteModel(with: modelId)
文件用于上传可以与助手等功能一起使用的文档。
uploadFile(payload: FilePayload(purpose: filePurpose, fileURL: fileURL))
listFiles()
retrieveFile(id: fileId)
deleteFile(id: fileId)
retrieveFileContent(id: fileId, destinationURL: destinationURL)
构建可以调用模型并使用工具来执行任务的助手。
createAssistant(from: CreateAssistantPayload(model: model, name: name, ...))
listAssistants(payload: ListPayload(limit: limit, ...))
retrieveAssistant(id: assistantId)
modifyAssistant(id: assistandId, payload: CreateAssistantPayload(model: updatedModel, name: updatedName, ...))
deleteAssistant(id: assistantId)
createThread(
from: CreateThreadPayload(
messages: [CreateMessagePayload(role: .user, content: "Hello"), ...],
metadata: ["key1": "value1", ...]
)
)
retrieveThread(id: threadId)
modifyThread(id: threadId, payload: ModifyPayload(metadata: ["key1": "value1", ...]))
deleteThread(id: threadId)
createMessage(in: threadId, payload: CreateMessagePayload(role: .user, content: "Hello"))
listMessages(from: threadId, payload: ListPayload(limit: limit))
retrieveMessage(id: messageId, from: threadId)
modifyMessage(id: messageId, from: threadId, payload: ModifyPayload(metadata: ["key1": "value1", ...]))
createRun(in: threadId, payload: CreateRunPayload(assistantId: assistantId, ...))
createStreamRun(in: threadId, payload: CreateStreamRunPayload(assistantId: assistantId))
createThreadAndRun(
from: CreateThreadAndRunPayload(
assistantId: assistantId,
thread: CreateThreadPayload(
messages: [CreateMessagePayload(role: .user, content: "Hello"), ...],
metadata: ["key1": "value1", ...]
)
)
)
listRuns(from: threadId, payload: ListPayload(limit: limit, ...))
retrieveRun(id: runId, from: threadId)
modifyRun(id: runId, from: threadId, payload: ModifyPayload(metadata: ["key1": "value1", ...]))
cancelRun(id: runId, from: threadId)
listRunSteps(from: runId, in: threadId, payload: ListPayload(limit: limit, ...))
retrieveRunStep(id: runStepId, from: runId, in: threadId)
要尝试 OpenAIAssistants 示例
https://github.com/exyte/OpenAI
PopupView - Toasts 和 popups 库
Grid - 最强大的 Grid 容器
ScalingHeaderScrollView - 具有粘性标头的滚动视图,该标头在您滚动时缩小
AnimatedTabBar - 具有许多预设动画的标签栏
MediaPicker - 可自定义的媒体选择器
Chat - 具有完全可自定义的消息单元格、输入视图和内置媒体选择器的聊天 UI 框架
AnimatedGradient - 动画线性渐变
ConcentricOnboarding - 动画 onboarding 流程
FloatingButton - 浮动按钮菜单
ActivityIndicatorView - 许多动画加载指示器
ProgressIndicatorView - 许多动画进度指示器
FlagAndCountryCode - 每个国家的电话代码和旗帜
SVGView - SVG 解析器
LiquidSwipe - 流体导航动画