Flutter Cloudflare AI集成插件cloudflare_ai的使用

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

Flutter Cloudflare AI集成插件cloudflare_ai的使用

Cloudflare-AI-Dart 是一个用于访问 Cloudflare AI API 的 Dart 客户端。它提供了多种功能,包括文本生成、文本摘要、图像生成、文本分类、语言翻译和文本聊天等。

功能

  • ✅ 文本生成
  • ✅ 文本摘要
  • ✅ 图像生成
  • ✅ 文本分类
  • ✅ 语言翻译
  • ✅ 文本聊天

安装

要安装 cloudflare_ai 插件,请运行以下命令:

dart pub add cloudflare_ai

或者在你的 pubspec.yaml 文件中添加以下依赖:

dependencies:
  cloudflare_ai: ^1.3.5

使用示例

文本生成

import 'package:cloudflare_ai/cloudflare_ai.dart';

void main() async {
  // 初始化 TextGenerationModel
  TextGenerationModel model = TextGenerationModel(
    accountId: "Your Account ID",
    apiKey: "Your API Key",
    model: TextGenerationModels.GEMMA_7B_IT,
  );

  // 生成文本
  TextGenerationResponse res = await model.generateText("Write a story about a robot, living on the moon");

  if (res.success && res.result != null) {
    print(res.result?.response);
  } else {
    print(res.errors);
  }
}

文本摘要

import 'package:cloudflare_ai/cloudflare_ai.dart';

void main() async {
  // 初始化 TextSummarizationModel
  TextSummarizationModel model = TextSummarizationModel(
    accountId: "Your Account ID",
    apiKey: "Your API Key",
    model: TextSummarizationModels.BART_LARGE_CNN,
  );

  // 摘要文本
  TextSummarizationResponse res = await model.summarize(
      "The quick brown fox jumps over the lazy dog",
      maxLength: 10,
    );

  if (res.success && res.result != null) {
    print(res.result?.response);
  } else {
    print(res.errors);
  }
}

图像生成

import 'package:cloudflare_ai/cloudflare_ai.dart';
import 'dart:io';

void main() async {
  // 初始化 TextToImageModel
  TextToImageModel model = TextToImageModel(
    accountId: "Your Account ID",
    apiKey: "Your API Key",
    model: TextToImageModels.DREAMSHAPER_8_LCM,
  );

  // 从文本生成图像
  Uint8List imageBytes = await model.generateImage("A beautiful sunset over the ocean");

  // 将图像保存到文件
  File("sunset.jpg").writeAsBytesSync(imageBytes);
}

文本分类

import 'package:cloudflare_ai/cloudflare_ai.dart';

void main() async {
  // 初始化 TextClassificationModel
  TextClassificationModel model = TextClassificationModel(
    accountId: "Your Account ID",
    apiKey: "Your API Key",
    model: TextClassificationModels.DISTILBERT_SST_2_INT8,
  );

  // 分类文本
  TextClassificationResponse res = await model.classifyText("A beautiful sunset over the ocean");

  if (res.success && res.result != null) {
    print('Positive Confidence level: ${res.result?.positive}');
    print('Negative Confidence level: ${res.result?.negative}');
  } else {
    print(res.errors);
  }
}

语言翻译

import 'package:cloudflare_ai/cloudflare_ai.dart';

void main() async {
  // 初始化 LanguageTranslationModel
  LanguageTranslationModel model = LanguageTranslationModel(
    accountId: "Your Account ID",
    apiKey: "Your API Key",
    model: LanguageTranslationModels.M2M100_1_2B,
  );

  // 翻译文本
  LanguageTranslationResponse res = await model.translate("A beautiful sunset over the ocean", Languages.English, Languages.French);

  if (res.success && res.result != null) {
    print(res.result?.response);
  } else {
    print(res.errors);
  }
}

文本聊天

import 'package:cloudflare_ai/cloudflare_ai.dart';

void main() async {
  // 初始化 TextChatModel
  TextChatModel model = TextChatModel(
    accountId: "Your Account ID",
    apiKey: "Your API Key",
    model: TextChatModels.GEMMA_7B_IT,
  );

  // 加载之前的对话消息
  model.loadMessages([
    {
      "role": "user",
      "content": "Hello!",
    },
    {
      "role": "assistant",
      "content": "Hello! How may I help you?",
    },
  ]);

  // 开始聊天
  ChatMessage message = await model.chat("Hello");

  print(message.content);
}

完整示例 Demo

以下是完整的示例代码,包含所有功能的演示:

import 'dart:io';
import 'dart:typed_data';
import 'package:cloudflare_ai/cloudflare_ai.dart';

void main() async {
  String accountId = "Your Account ID";
  String apiKey = "Your API Key";

  // 文本生成
  TextGenerationModel textGenModel = TextGenerationModel(
    accountId: accountId,
    apiKey: apiKey,
    model: TextGenerationModels.GEMMA_7B_IT,
  );

  TextGenerationResponse textGenRes = await textGenModel.generateText("Write a story about a robot, living on the moon");

  if (textGenRes.success && textGenRes.result != null) {
    print(textGenRes.result?.response);
  } else {
    print(textGenRes.errors.map((e) => e.toJson()).toList());
  }

  // 文本摘要
  TextSummarizationModel textSummarizationModel = TextSummarizationModel(
    accountId: accountId,
    apiKey: apiKey,
    model: TextSummarizationModels.BART_LARGE_CNN,
  );

  TextSummarizationResponse textSummarizationRes = await textSummarizationModel.summarize(
    "Your very long text....",
    maxLength: 1024,
  );

  if (textSummarizationRes.success && textSummarizationRes.result != null) {
    print(textSummarizationRes.result?.response);
  } else {
    print(textSummarizationRes.errors.map((e) => e.toJson()).toList());
  }

  // 图像生成
  TextToImageModel textToImageModel = TextToImageModel(
    accountId: accountId,
    apiKey: apiKey,
    model: TextToImageModels.DREAMSHAPER_8_LCM,
  );

  Uint8List textToImageResult = await textToImageModel.generateImage("An alien on the moon");
  File("image.png").writeAsBytesSync(textToImageResult);

  // 文本分类
  TextClassificationModel textClassificationModel = TextClassificationModel(
    accountId: accountId,
    apiKey: apiKey,
    model: TextClassificationModels.DISTILBERT_SST_2_INT8,
  );

  TextClassificationResponse textClassificationResponse = await textClassificationModel.classifyText("Test Prompt");

  if (textClassificationResponse.success && textClassificationResponse.result != null) {
    print('Positive Confidence level: ${textClassificationResponse.result?.positive}');
    print('Negative Confidence level: ${textClassificationResponse.result?.negative}');
  } else {
    print(textClassificationResponse.errors.map((e) => e.toJson()).toList());
  }

  // 语言翻译
  LanguageTranslationModel languageTranslationModel = LanguageTranslationModel(
    accountId: accountId,
    apiKey: apiKey,
    model: LanguageTranslationModels.M2M100_1_2B,
  );

  LanguageTranslationResponse languageTranslationRes = await languageTranslationModel.translate(
    "Hello",
    Languages.English,
    Languages.Hindi,
  );

  if (languageTranslationRes.success && languageTranslationRes.result != null) {
    print(languageTranslationRes.result?.response);
  } else {
    print(languageTranslationRes.errors.map((e) => e.toJson()).toList());
  }

  // 文本聊天
  TextChatModel textChatModel = TextChatModel(
    accountId: accountId,
    apiKey: apiKey,
    model: TextChatModels.GEMMA_7B_IT,
  );

  textChatModel.loadMessages([
    {
      "role": "user",
      "content": "Hello!",
    },
    {
      "role": "assistant",
      "content": "Hello! How may I help you?",
    },
  ]);

  ChatMessage chatRes = await textChatModel.chat("Who are you?");
  print(chatRes.content);
}

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

1 回复

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


当然,以下是一个关于如何在Flutter项目中集成并使用cloudflare_ai插件的示例代码。这个插件假设它提供了与Cloudflare AI服务交互的功能,尽管实际的API和功能可能有所不同,但以下代码提供了一个基本的集成框架。

首先,确保你的Flutter项目中已经添加了cloudflare_ai依赖。你可以在pubspec.yaml文件中添加如下依赖:

dependencies:
  flutter:
    sdk: flutter
  cloudflare_ai: ^x.y.z  # 请替换为实际版本号

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

接下来,在你的Flutter应用中,你可以按照以下步骤来初始化并使用cloudflare_ai插件。

1. 初始化插件

通常,插件会提供一个初始化方法,用于设置必要的配置,如API密钥等。假设cloudflare_ai插件有一个initialize方法,你可以在应用启动时调用它。

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

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
    // 初始化cloudflare_ai插件,替换'your-api-key'为你的实际API密钥
    CloudflareAI.initialize('your-api-key');
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Cloudflare AI Example'),
        ),
        body: Center(
          child: Text('Check the console for API responses'),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: () async {
            // 调用Cloudflare AI的某个功能,例如文本分析
            String response = await callCloudflareAIFunction();
            print(response);
          },
          tooltip: 'Call Cloudflare AI',
          child: Icon(Icons.send),
        ),
      ),
    );
  }

  Future<String> callCloudflareAIFunction() async {
    // 假设有一个文本分析的功能
    String text = "Hello, this is a test text for Cloudflare AI.";
    try {
      var result = await CloudflareAI.analyzeText(text);
      return result.toString();
    } catch (e) {
      return 'Error: ${e.message}';
    }
  }
}

2. 调用Cloudflare AI功能

在上面的代码中,callCloudflareAIFunction方法展示了如何调用Cloudflare AI的某个功能(这里假设是文本分析)。你需要根据实际的API文档来调整这部分代码。

注意事项

  1. API密钥管理:不要在客户端代码中硬编码API密钥。考虑使用环境变量或安全的密钥管理服务。
  2. 错误处理:在实际应用中,添加更多的错误处理逻辑,以确保应用的健壮性。
  3. 文档参考:查阅cloudflare_ai插件的官方文档,了解所有可用的方法和参数。
  4. 依赖版本:确保使用的是最新版本的cloudflare_ai插件,以避免已知的bug和兼容性问题。

由于cloudflare_ai插件的具体实现细节可能有所不同,上述代码仅为示例,实际使用时请参考插件的官方文档。

回到顶部