openai_api 0.1.0 copy "openai_api: ^0.1.0" to clipboard
openai_api: ^0.1.0 copied to clipboard

A Dart API client for OpenAI. You can use it in Dart or Flutter applicaitons. for more information please refer to Openai API reference.

example/main.dart

import 'dart:convert';

import 'package:openai_api/openai_api.dart';

import 'lib/env.dart';

void main() async {
  final client = OpenaiClient(
    config: OpenaiConfig(
      apiKey: Env.apiKey,
      baseUrl: Env.baseUrl,
      httpProxy: Env.httpProxy,
    ),
  );

  // chatCompletionStsream(client);

  chatCompletion(client);
  // await transcripte(client);
  // Future.delayed(Duration(seconds: 10));
  // await translate(client);

  // await testModel(client);

  // print(await client.createImage(
  //   ImageRequest(
  //     prompt: "a girl on the beach",
  //     responseFormat: 'b64_json',
  //   ),
  // ));

  // print(await client.createImageEdit(
  //     ImageEditRequest(image: "assets/image.png", prompt: "打一把太阳伞")));
  client.client.close();
}

Future<void> testModel(OpenaiClient client) async {
  final result = await client.listModels();
  print(result);

  print(await client.getModel(Models.gpt3_5Turbo));
}

Future<void> transcripte(OpenaiClient client) async {
  final result = await client.createTrascription(
    TranscriptionRequest(
      file: 'assets/ttsmaker-file-2023-3-22-14-57-0.mp3',
    ),
  );
  print(result.text);
}

Future<void> translate(OpenaiClient client) async {
  final translateResult = await client.createTraslation(
    TranslationRequest(
      file: 'assets/ttsmaker-file-2023-3-22-17-27-30.mp3',
      // file: "assets/ttsmaker-file-2023-3-22-14-2-35.mp3",
      // Wierd. this will be translated into Pinyin for Chinese if prompt not set.
      // 你好朋友,我好想你。
      // Ni Hao Peng You, Wo Hao Xiang Ni
      // prompt: "Please translate into Chinese.",
    ),
  );
  print(translateResult.text);
}

void chatCompletionStsream(OpenaiClient client) {
  client.sendChatCompletionStream(
    ChatCompletionRequest(
      model: Models.gpt3_5Turbo,
      stream: true,
      messages: [
        ChatMessage(
            content: "Act as a golang runtime", role: ChatMessageRole.user),
      ],
    ),
    onSuccess: (p0) {
      print(p0);
    },
  );
}

void chatCompletion(OpenaiClient client) async {
  final result = await client.sendChatCompletion(
    ChatCompletionRequest(
      model: Models.gpt3_5Turbo_0613,
      messages: [
        ChatMessage(
            content: "What's the weather like in Boston in celsius?",
            role: ChatMessageRole.user),
        ChatMessage(
          content: jsonEncode({
            "temperature": "22",
            "unit": "celsius",
            "description": "Sunny",
          }),
          name: 'get_current_weather',
          role: ChatMessageRole.function,
        ),
      ],
      functions: [
        ChatFunction(
          name: "get_current_weather",
          description: "Get the current weather in a given location",
          parameters: ChatFunctionParameters(
            type: "object",
            properties: {
              "location": {
                "type": "string",
                "description": "The city and state, e.g. San Francisco, CA",
              },
              "unit": {
                "type": "string",
                "enum": ["celsius", "fahrenheit"]
              },
            },
            required: ["location"],
          ),
        )
      ],
      functionCall: "auto",
    ),
  );
  print(result);
}
11
likes
0
pub points
78%
popularity

Publisher

verified publishermings.in

A Dart API client for OpenAI. You can use it in Dart or Flutter applicaitons. for more information please refer to Openai API reference.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

cancellation_token_http, envied, envied_generator, freezed_annotation, http_parser, json_annotation

More

Packages that depend on openai_api