带 Flutter 的 ChatGPT 应用
ChatGPT 是 OpenAI 于 2022 年 11 月推出的聊天机器人。它建立在 OpenAI 的 GPT-3.5 系列大型语言模型之上,并通过监督和强化学习技术进行了微调。
安装包
chat_gpt:1.0.1+2
pub get
示例
创建 ChatGPT 实例
- 参数
- 令牌
- 您的秘密 API 密钥列于下方。请注意,生成密钥后,我们不会再次显示您的秘密 API 密钥。
- 请勿与他人共享您的 API 密钥,或将其暴露在浏览器或其他客户端代码中。为了保护您的账户安全,OpenAI 可能会自动轮换任何被我们发现已公开泄露的 API 密钥。
- https://beta.openai.com/account/api-keys
- 令牌
- 组织 ID
- 此组织的标识符,有时用于 API 请求
- https://beta.openai.com/account/org-settings
final openAI = ChatGPT.instance.builder("token");
- 文本补全 API
- 翻译方法
- translateEngToThai
- translateThaiToEng
- translateToJapanese
- 模型
- kTranslateModelV3
- kTranslateModelV2
- kCodeTranslateModelV2
- 将自然语言翻译成 SQL 查询。
- 使用自然语言为 Stripe API 创建代码。
- 查找函数的时序复杂度。
- https://beta.openai.com/examples
- 翻译方法
final request = CompleteReq(prompt: translateEngToThai(word: ''),
model: kTranslateModelV3, max_tokens: 200);
openAI.onCompleteStream(request:request).listen((response) => print(response));
- 示例问答
- 根据现有知识回答问题。
final request = CompleteReq(prompt:'What is human life expectancy in the United States?'),
model: kTranslateModelV3, max_tokens: 200);
openAI.onCompleteStream(request:request).listen((response) => print(response));
- 请求
Q: What is human life expectancy in the United States?
- 响应
A: Human life expectancy in the United States is 78 years.
- 模型列表
- 列出 API 中当前可用的模型,并提供有关每个模型的基本信息,例如所有者和可用性。您可以参考模型文档来了解哪些模型可用以及它们之间的区别。
- https://beta.openai.com/docs/api-reference/models
final models = await openAI.listModel();
- 引擎列表
- 列出当前可用的(未微调)模型,并提供有关每个模型的基本信息,例如所有者和可用性。
- https://beta.openai.com/docs/api-reference/engines
final engines = await openAI.listEngine();
Flutter 示例
class _TranslateScreenState extends State<TranslateScreen> {
/// text controller
final _txtWord = TextEditingController();
CompleteRes? _response;
StreamSubscription? subscription;
final api = ChatGPT.instance;
void _translateEngToThai() {
final request = CompleteReq(
prompt: translateEngToThai(word: _txtWord.text.toString()),
model: kTranslateModelV3,
max_tokens: 1000);
subscription = ChatGPT.instance
.builder("token")
.onCompleteStream(request: request)
.listen((res) {
setState(() {
_response = res;
});
});
}
void modelDataList() async{
final model = await ChatGPT.instance
.builder("token")
.listModel();
}
void engineList() async{
final engines = await ChatGPT.instance
.builder("token")
.listEngine();
}
@override
void dispose() {
subscription?.cancel();
super.dispose();
}
@override
Widget build(BuildContext context) {
var size = MediaQuery.of(context).size;
return Scaffold(
backgroundColor: Colors.white,
body: SingleChildScrollView(
child: Center(
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
/**
* title translate
*/
_titleCard(size),
/**
* input card
* insert your text for translate to th.com
*/
_inputCard(size),
/**
* card input translate
*/
_resultCard(size),
/**
* button translate
*/
_btnTranslate()
],
),
),
),
),
bottomNavigationBar: _navigation(size),
);
}
}
