Flutter GPT接口调用插件yandex_gpt_rest_api的使用

Flutter GPT接口调用插件yandex_gpt_rest_api的使用

Dart库用于与YandexGPT API交互。

目录

开始使用

创建YandexGptApi实例。

// 使用其他构造函数传递BaseOptions或Dio。
final api = YandexGptApi(
  token: AuthToken.api("your_token"), // 或者 AuthToken.iam
  // 不必要,按默认使用AuthToken账户的目录。
  catalog: "catalog_id?",
);

现在你可以使用YandexGPT API了。

API调用

YandexGptApi的方法名称与API方法名称相同。

文本生成

当使用配置的小dio.options.receiveTimeout生成大量文本时,可能会发生超时错误。

同步文本生成
final response = await api.generateText(
  TextGenerationRequest(
    model: GModel.yandexGpt('folder_id'),
    messages: const [
      Message.system("Some joke"),
      Message.user("Generate joke"),
    ],
  ),
);
print(response.alternatives.first.message);
print(response.usage.totalTokens);
异步文本生成

generateAsyncText返回一个Operation对象。

final response = await api.generateAsyncText(
  TextGenerationRequest(
    model: GModel.yandexGpt('folder_id'),
    messages: const [
      Message.system("Some joke"),
      Message.user("Generate joke"),
    ],
  ),
);
print(response.done);
获取异步生成状态
final asyncText = await api.generateAsyncText(/*request*/);
final response = await api.getOperationTextGenerate(asyncText.id);
print(response.done);

分词

完成分词
final response = await api.tokenizeCompletion(
  TextGenerationRequest(
    model: GModel.yandexGpt('folder_id'),
    messages: const [
      Message.system("Some joke"),
      Message.user("Generate joke"),
    ],
  ),
);
print(response.tokens.length);
文本分词
final response = await api.tokenizeText(
  TokenizeTextRequest(
    model: GModel.yandexGpt('folder_id'),
    text: 'some_response_text',
  ),
);
print(response.tokens.length);

嵌入

文本嵌入
final response = await api.getTextEmbedding(
  EmbeddingRequest(
    model: VModel.documentation('folder_id'),
    text: 'Some text',
  ),
);
print(response.embedding);

错误处理

只需要捕获类型为ApiError的错误。

try {
  await api.generateText(/*request*/);
} on ApiError catch (e) {
  // 处理YandexGPT API错误
} on DioException catch (e) {
  // 处理网络错误
}

如果需要有关错误的信息:

try {
  await api.generateText(/*request*/);
} on DetailedApiError catch (e) {
  // 处理DetailedApiError
} on ShortApiError catch (e) {
  // 处理ShortApiError
} on DioException catch (e) {
  // 处理网络错误
}

取消请求

要取消请求,可以使用Dio的CancelToken通过传递带有cancelToken参数的API请求。

final errorClient = YandexGptApi(token: AuthToken.apiKey('sus'));
final cancelToken = CancelToken();

errorClient
    .generateText(
      TextGenerationRequest(model: GModel.yandexGpt(''), messages: []),
      cancelToken: cancelToken,
    )
    .then(
      (value) => null,
      onError: (e) => print("Canceled with ${e.runtimeType}\n"),
    );
cancelToken.cancel();

更多关于Flutter GPT接口调用插件yandex_gpt_rest_api的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

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


当然,下面是一个关于如何在Flutter项目中使用yandex_gpt_rest_api插件来调用Yandex GPT接口的示例代码。这个示例将展示如何设置插件、初始化GPT模型,并发送请求以获取生成的文本。

首先,确保你已经在pubspec.yaml文件中添加了yandex_gpt_rest_api依赖:

dependencies:
  flutter:
    sdk: flutter
  yandex_gpt_rest_api: ^最新版本号  # 请替换为实际的最新版本号

然后,运行flutter pub get来安装依赖。

接下来,在你的Flutter项目中,你可以按照以下步骤使用yandex_gpt_rest_api插件:

  1. 导入插件
import 'package:yandex_gpt_rest_api/yandex_gpt_rest_api.dart';
  1. 设置GPT配置

你需要提供Yandex GPT API所需的配置信息,如API密钥和模型ID。在实际应用中,这些信息通常存储在安全的地方,比如环境变量或加密的配置文件中。

final String apiKey = '你的Yandex GPT API密钥';
final String modelId = '你的模型ID';
  1. 初始化GPT客户端

使用提供的API密钥和模型ID来初始化GPT客户端。

final YandexGPTClient gptClient = YandexGPTClient(apiKey: apiKey, modelId: modelId);
  1. 发送请求并获取生成的文本

现在你可以使用GPT客户端来发送请求,并处理生成的文本。

void generateText(String prompt) async {
  try {
    // 设置请求参数,包括输入的文本(prompt)
    final GPTRequest request = GPTRequest(text=prompt);
    
    // 发送请求并获取响应
    final GPTResponse response = await gptClient.generateText(request);
    
    // 打印生成的文本
    print('Generated Text: ${response.text}');
  } catch (e) {
    // 处理错误
    print('Error: $e');
  }
}
  1. 在UI中调用

你可以在一个按钮点击事件中调用generateText函数,以便在用户界面上触发文本生成。

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Yandex GPT Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              // 调用生成文本的函数,传入提示文本
              generateText('请编写一个关于Flutter的简短介绍。');
            },
            child: Text('Generate Text'),
          ),
        ),
      ),
    );
  }
}

将上述代码片段整合到你的Flutter项目中,并确保你已经替换了apiKeymodelId为实际的Yandex GPT API密钥和模型ID。运行应用后,点击按钮应该能够触发GPT模型的文本生成,并在控制台中打印生成的文本。

请注意,实际开发中应妥善管理API密钥,避免将其硬编码在客户端代码中。可以考虑使用后端服务来代理API请求,以保护你的API密钥不被泄露。

回到顶部