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
更多关于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
插件:
- 导入插件:
import 'package:yandex_gpt_rest_api/yandex_gpt_rest_api.dart';
- 设置GPT配置:
你需要提供Yandex GPT API所需的配置信息,如API密钥和模型ID。在实际应用中,这些信息通常存储在安全的地方,比如环境变量或加密的配置文件中。
final String apiKey = '你的Yandex GPT API密钥';
final String modelId = '你的模型ID';
- 初始化GPT客户端:
使用提供的API密钥和模型ID来初始化GPT客户端。
final YandexGPTClient gptClient = YandexGPTClient(apiKey: apiKey, modelId: modelId);
- 发送请求并获取生成的文本:
现在你可以使用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');
}
}
- 在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项目中,并确保你已经替换了apiKey
和modelId
为实际的Yandex GPT API密钥和模型ID。运行应用后,点击按钮应该能够触发GPT模型的文本生成,并在控制台中打印生成的文本。
请注意,实际开发中应妥善管理API密钥,避免将其硬编码在客户端代码中。可以考虑使用后端服务来代理API请求,以保护你的API密钥不被泄露。