Flutter OpenAI接口集成插件openai_sdk的使用

发布于 1周前 作者 h691938207 来自 Flutter

Flutter OpenAI接口集成插件openai_sdk的使用

openai_sdk (EXPERIMENTAL)

APIs for sampling from and fine-tuning language models

这个Dart包是由OpenAPI Generator项目自动生成的:

  • API版本: 1.2.0
  • 构建包: org.openapitools.codegen.languages.DartDioClientCodegen

Requirements


Installation & Usage

pub.dev

要从pub.dev使用该包,请在pubspec.yaml中添加以下内容:

dependencies:
  openai_sdk: 0.0.1

Github

如果此Dart包发布到Github,请在pubspec.yaml中添加以下内容:

dependencies:
  openai_sdk:
    git:
      url: https://github.com/GIT_USER_ID/GIT_REPO_ID.git
      #ref: main

Local Development

要在本地驱动器上使用该包,请在pubspec.yaml中添加以下内容:

dependencies:
  openai_sdk:
    path: /path/to/openai_sdk

Getting Started

请按照安装步骤操作,然后运行以下代码:

import 'package:openai_sdk/openai_sdk.dart';

void main() async {
  // 初始化OpenAI API
  final api = OpenaiSdk().getOpenAIApi();

  // 示例:创建一个文本补全请求
  final CreateCompletionRequest request = CreateCompletionRequest(
    model: "text-davinci-002", // 模型名称
    prompt: "你好,世界!", // 输入提示
    maxTokens: 50, // 最大生成长度
  );

  try {
    // 调用API并获取响应
    final response = await api.createCompletion(request);
    print("生成结果: ${response.choices.first.text}");
  } catch (e) {
    print("调用API时出错: $e");
  }
}

Documentation for API Endpoints

所有URI均相对于https://api.openai.com/v1

类别 方法 HTTP 请求 描述
OpenAIApi cancelFineTune POST /fine-tunes/{fine_tune_id}/cancel 立即取消一个微调任务
OpenAIApi createAnswer POST /answers 使用提供的文档和示例回答指定问题
OpenAIApi createChatCompletion POST /chat/completions 创建聊天消息的补全
OpenAIApi createClassification POST /classifications 使用提供的示例对指定查询进行分类
OpenAIApi createCompletion POST /completions 根据提供的提示和参数创建补全
OpenAIApi createEdit POST /edits 根据输入、指令和参数创建新的编辑
OpenAIApi createEmbedding POST /embeddings 创建表示输入文本的嵌入向量
OpenAIApi createFile POST /files 上传包含文档的文件以供各个端点使用
OpenAIApi createFineTune POST /fine-tunes 从给定数据集中微调指定模型
OpenAIApi createImage POST /images/generations 根据提示生成图像
OpenAIApi createImageEdit POST /images/edits 根据原始图像和提示创建编辑或扩展图像
OpenAIApi createImageVariation POST /images/variations 创建给定图像的变体
OpenAIApi createModeration POST /moderations 判断文本是否违反OpenAI的内容政策
OpenAIApi createSearch POST /engines/{engine_id}/search 计算提供的查询与文档之间的相似分数
OpenAIApi createTranscription POST /audio/transcriptions 将音频转录为输入语言
OpenAIApi createTranslation POST /audio/translations 将音频翻译为英语
OpenAIApi deleteFile DELETE /files/{file_id} 删除文件
OpenAIApi deleteModel DELETE /models/{model} 删除微调模型(必须具有组织所有者角色)
OpenAIApi downloadFile GET /files/{file_id}/content 返回指定文件的内容
OpenAIApi listEngines GET /engines 列出当前可用的非微调模型,并提供基本信息
OpenAIApi listFiles GET /files 返回属于用户组织的所有文件列表
OpenAIApi listFineTuneEvents GET /fine-tunes/{fine_tune_id}/events 获取微调任务的详细状态更新
OpenAIApi listFineTunes GET /fine-tunes 列出组织的微调任务
OpenAIApi listModels GET /models 列出当前可用的模型,并提供基本信息
OpenAIApi retrieveEngine GET /engines/{engine_id} 检索模型实例并提供基本信息
OpenAIApi retrieveFile GET /files/{file_id} 返回有关特定文件的信息
OpenAIApi retrieveFineTune GET /fine-tunes/{fine_tune_id} 获取微调任务的信息
OpenAIApi retrieveModel GET /models/{model} 检索模型实例并提供模型的基本信息

Documentation For Models

  • ChatCompletionRequestMessage
  • ChatCompletionResponseMessage
  • CreateAnswerRequest
  • CreateAnswerRequestStop
  • CreateAnswerResponse
  • CreateAnswerResponseSelectedDocumentsInner
  • CreateChatCompletionRequest
  • CreateChatCompletionRequestStop
  • CreateChatCompletionResponse
  • CreateChatCompletionResponseChoicesInner
  • CreateClassificationRequest
  • CreateClassificationResponse
  • CreateClassificationResponseSelectedExamplesInner
  • CreateCompletionRequest
  • CreateCompletionRequestPrompt
  • CreateCompletionRequestStop
  • CreateCompletionResponse
  • CreateCompletionResponseChoicesInner
  • CreateCompletionResponseChoicesInnerLogprobs
  • CreateCompletionResponseUsage
  • CreateEditRequest
  • CreateEditResponse
  • CreateEmbeddingRequest
  • CreateEmbeddingRequestInput
  • CreateEmbeddingResponse
  • CreateEmbeddingResponseDataInner
  • CreateEmbeddingResponseUsage
  • CreateFineTuneRequest
  • CreateImageRequest
  • CreateModerationRequest
  • CreateModerationRequestInput
  • CreateModerationResponse
  • CreateModerationResponseResultsInner
  • CreateModerationResponseResultsInnerCategories
  • CreateModerationResponseResultsInnerCategoryScores
  • CreateSearchRequest
  • CreateSearchResponse
  • CreateSearchResponseDataInner
  • CreateTranscriptionResponse
  • CreateTranslationResponse
  • DeleteFileResponse
  • DeleteModelResponse
  • Engine
  • FineTune
  • FineTuneEvent
  • ImagesResponse
  • ImagesResponseDataInner
  • ListEnginesResponse
  • ListFilesResponse
  • ListFineTuneEventsResponse
  • ListFineTunesResponse
  • ListModelsResponse
  • Model
  • OpenAIFile

Documentation For Authorization

所有端点都不需要授权。


示例代码

以下是一个完整的示例代码,展示如何使用openai_sdk创建文本补全任务:

import 'package:flutter/material.dart';
import 'package:openai_sdk/openai_sdk.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('OpenAI SDK 示例')),
        body: Center(child: TextButton(
          onPressed: () async {
            // 初始化OpenAI API
            final api = OpenaiSdk().getOpenAIApi();

            // 创建补全请求
            final CreateCompletionRequest request = CreateCompletionRequest(
              model: "text-davinci-002",
              prompt: "你好,世界!",
              maxTokens: 50,
            );

            try {
              // 调用API并获取响应
              final response = await api.createCompletion(request);
              print("生成结果: ${response.choices.first.text}");
            } catch (e) {
              print("调用API时出错: $e");
            }
          },
          child: Text('调用OpenAI API'),
        )),
      ),
    );
  }
}

更多关于Flutter OpenAI接口集成插件openai_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter OpenAI接口集成插件openai_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中集成OpenAI接口,可以使用openai_sdk插件。这个插件提供了一个简单的方式来与OpenAI的API进行交互。以下是如何在Flutter项目中使用openai_sdk插件的步骤:

1. 添加依赖

首先,你需要在pubspec.yaml文件中添加openai_sdk插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  openai_sdk: ^1.0.0  # 请检查最新版本

然后运行flutter pub get来获取依赖。

2. 获取OpenAI API密钥

在使用OpenAI API之前,你需要一个API密钥。你可以在OpenAI官网注册并获取API密钥。

3. 初始化OpenAI SDK

在你的Flutter应用中,你需要初始化OpenAI实例。通常可以在main.dart或某个初始化文件中进行初始化:

import 'package:openai_sdk/openai_sdk.dart';

final openAI = OpenAI(apiKey: 'your_openai_api_key');

4. 使用OpenAI API

openai_sdk插件提供了多种方法来与OpenAI API进行交互,比如生成文本、完成对话等。以下是一些常见的用法:

生成文本

你可以使用Completion来生成文本:

import 'package:openai_sdk/openai_sdk.dart';

void generateText() async {
  final completion = await openAI.completion(
    prompt: "Translate the following English text to French: 'Hello, how are you?'",
    model: "text-davinci-003",
    maxTokens: 60,
  );

  print(completion.choices.first.text);
}

对话生成

你可以使用ChatCompletion来生成对话:

import 'package:openai_sdk/openai_sdk.dart';

void generateChat() async {
  final chatCompletion = await openAI.chatCompletion(
    messages: [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Who won the world series in 2020?"},
    ],
    model: "gpt-3.5-turbo",
  );

  print(chatCompletion.choices.first.message.content);
}

图像生成

你可以使用ImageGeneration来生成图像:

import 'package:openai_sdk/openai_sdk.dart';

void generateImage() async {
  final imageGeneration = await openAI.imageGeneration(
    prompt: "A futuristic cityscape",
    n: 1,
    size: "1024x1024",
  );

  print(imageGeneration.data.first.url);
}

5. 错误处理

在使用API时,可能会遇到错误。你可以使用try-catch块来捕获和处理这些错误:

void generateText() async {
  try {
    final completion = await openAI.completion(
      prompt: "Translate the following English text to French: 'Hello, how are you?'",
      model: "text-davinci-003",
      maxTokens: 60,
    );

    print(completion.choices.first.text);
  } catch (e) {
    print('Error: $e');
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!