Skip to content

Commit

Permalink
fix: Applying openAIChatGPT in FirebaseFunctions.
Browse files Browse the repository at this point in the history
  • Loading branch information
mathrunet committed Mar 8, 2023
1 parent 6b5a70c commit 0de603c
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 36 deletions.
2 changes: 1 addition & 1 deletion packages/katana_functions/example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@ packages:
path: ".."
relative: true
source: path
version: "1.1.13"
version: "1.1.14"
lints:
dependency: transitive
description:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,4 +97,49 @@ class FirebaseFunctionsAdapter extends FunctionsAdapter {
rethrow;
}
}

@override
Future<OpenAIChatGPTMessage?> openAIChatGPT({
required List<OpenAIChatGPTMessage> messages,
OpenAIChatGPTModel model = OpenAIChatGPTModel.gpt35Turbo,
}) async {
await FirebaseCore.initialize(options: options);
try {
final res =
await functions.httpsCallable("openai_chat_gpt").call<DynamicMap>(
{
"message": messages
.map((e) => {
"role": e.role.name,
"content": e.text,
})
.toList(),
"model": model.name,
},
);
if (res.data.isEmpty) {
throw Exception("Failed to get response from openai_chat_gpt.");
}

final choices = res.data.getAsList<DynamicMap>("choices");
if (choices.isEmpty) {
throw Exception("Failed to get response from openai_chat_gpt.");
}

final token = res.data.getAsMap("usage").get("total_tokens", 0);
final message = choices.first.getAsMap("message");
final role = message.get("role", "");
final content = message.get("content", "");
return OpenAIChatGPTMessage(
role: OpenAIChatGPTRole.values
.firstWhereOrNull((item) => item.name == role) ??
OpenAIChatGPTRole.user,
text: content,
token: token,
);
} catch (e) {
debugPrint(e.toString());
rethrow;
}
}
}
70 changes: 35 additions & 35 deletions packages/katana_functions_firebase/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,34 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
sha256: "0c80aeab9bc807ab10022cd3b2f4cf2ecdf231949dc1ddd9442406a003f19201"
sha256: "98d1d33ed129b372846e862de23a0fc365745f4d7b5e786ce667fcbbb7ac5c07"
url: "https://pub.dev"
source: hosted
version: "52.0.0"
version: "55.0.0"
_flutterfire_internals:
dependency: transitive
description:
name: _flutterfire_internals
sha256: "3ff770dfff04a67b0863dff205a0936784de1b87a5e99b11c693fc10e66a9ce3"
sha256: cb3a948a1eebbf8efd987c43f95418269930e912a88bc7b6a5a7658423133635
url: "https://pub.dev"
source: hosted
version: "1.0.12"
version: "1.0.17"
analyzer:
dependency: transitive
description:
name: analyzer
sha256: cd8ee83568a77f3ae6b913a36093a1c9b1264e7cb7f834d9ddd2311dade9c1f4
sha256: "881348aed9b0b425882c97732629a6a31093c8ff20fc4b3b03fb9d3d50a3a126"
url: "https://pub.dev"
source: hosted
version: "5.4.0"
version: "5.7.1"
args:
dependency: transitive
description:
name: args
sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611"
sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
version: "2.4.0"
asn1lib:
dependency: transitive
description:
Expand Down Expand Up @@ -77,50 +77,50 @@ packages:
dependency: transitive
description:
name: cloud_firestore
sha256: a851106a2169c15614047b75ea10d0346650352c6669ab482306572aa4ed9a7d
sha256: cb49dd8aab9700766fb8a33a4328306f1b9b555ea6efb5fd3b1a55d14af2d2ca
url: "https://pub.dev"
source: hosted
version: "4.3.1"
version: "4.4.4"
cloud_firestore_platform_interface:
dependency: transitive
description:
name: cloud_firestore_platform_interface
sha256: "1fac512fef2bfe84ca7f372defbd9dd8efb108be96854db9023739a5b2aa9977"
sha256: "21f8c6ebe74cab9bb28ecfcf1688813114d52b87b9b98e0bc8b23dd95a1d8e7b"
url: "https://pub.dev"
source: hosted
version: "5.10.1"
version: "5.11.4"
cloud_firestore_web:
dependency: transitive
description:
name: cloud_firestore_web
sha256: "3fd9581c1447b6e8db6d0f19d0140b196a70ecf582bd1f71e7141fe9abf10ddb"
sha256: "57389e42341c5162861b505bfe2419112030f55d5efae607fad2625e5384715e"
url: "https://pub.dev"
source: hosted
version: "3.2.1"
version: "3.3.4"
cloud_functions:
dependency: "direct main"
description:
name: cloud_functions
sha256: "4d1ab399ac89ac59fe80616e6b3322f76cede621e32d33cdc90560097be76fee"
sha256: "33e41559db531cb8ddbadc614fd2552ad235e57637996d929e2f8048af8abed4"
url: "https://pub.dev"
source: hosted
version: "4.0.7"
version: "4.0.12"
cloud_functions_platform_interface:
dependency: transitive
description:
name: cloud_functions_platform_interface
sha256: "28765c049a8945046f799279864ca8feffaa41a9e5d3c03654affbb2f282075c"
sha256: "01a8de02ac0813084ec7e3b0e6d8596467c7e46c03978e68ee8445c11d6fbf4c"
url: "https://pub.dev"
source: hosted
version: "5.1.26"
version: "5.1.31"
cloud_functions_web:
dependency: transitive
description:
name: cloud_functions_web
sha256: "1de54c7df9091f66084a18a406f68871e7e1febe5178f36524d058a7a66adc13"
sha256: d165a0aee0a13c51ab4d11f50d5b7cd62d5a25bdca86e834df9bb78a5ca05dc5
url: "https://pub.dev"
source: hosted
version: "4.3.15"
version: "4.3.20"
collection:
dependency: transitive
description:
Expand Down Expand Up @@ -181,26 +181,26 @@ packages:
dependency: "direct main"
description:
name: firebase_core
sha256: c129209ba55f3d4272c89fb4a4994c15bea77fb6de63a82d45fb6bc5c94e4355
sha256: "1c121a478af23755b0b93fd4aa70d3bd32a587dd51ef0a3979091ac0d2317d32"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
version: "2.7.1"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
sha256: "5fab93f5b354648efa62e7cc829c90efb68c8796eecf87e0888cae2d5f3accd4"
sha256: "5615b30c36f55b2777d0533771deda7e5730e769e5d3cb7fda79e9bed86cfa55"
url: "https://pub.dev"
source: hosted
version: "4.5.2"
version: "4.5.3"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
sha256: "18b35ce111b0a4266abf723c825bcf9d4e2519d13638cc7f06f2a8dd960c75bc"
sha256: "0c1cf1f1022d2245ac117443bb95207952ca770281524d2908e323bc063fb8ff"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.2.2"
flutter:
dependency: "direct main"
description: flutter
Expand Down Expand Up @@ -316,10 +316,10 @@ packages:
dependency: "direct main"
description:
name: katana_functions
sha256: "3c2b567221e2ce096063de5b96ac145a6055933e268f4942942ababbf6d5ab8e"
sha256: "37a80e38df7babbcb6082f294334d54251d9c327d18ab09870c03e6715d56c7a"
url: "https://pub.dev"
source: hosted
version: "1.1.12"
version: "1.1.14"
lints:
dependency: transitive
description:
Expand Down Expand Up @@ -372,10 +372,10 @@ packages:
dependency: transitive
description:
name: node_preamble
sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d"
sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
version: "2.0.2"
package_config:
dependency: transitive
description:
Expand All @@ -396,10 +396,10 @@ packages:
dependency: transitive
description:
name: plugin_platform_interface
sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a
sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc"
url: "https://pub.dev"
source: hosted
version: "2.1.3"
version: "2.1.4"
pointycastle:
dependency: transitive
description:
Expand Down Expand Up @@ -481,10 +481,10 @@ packages:
dependency: transitive
description:
name: source_maps
sha256: "490098075234dcedb83c5d949b4c93dad5e6b7702748de000be2b57b8e6b2427"
sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703"
url: "https://pub.dev"
source: hosted
version: "0.10.11"
version: "0.10.12"
source_span:
dependency: transitive
description:
Expand Down Expand Up @@ -630,5 +630,5 @@ packages:
source: hosted
version: "3.1.1"
sdks:
dart: ">=2.18.0 <4.0.0"
dart: ">=2.19.0 <3.0.0"
flutter: ">=2.0.0"

0 comments on commit 0de603c

Please sign in to comment.