Flutter 是一款跨平台的移动应用开发框架,而 GetX 是 Flutter 中一种简单易用的状态管理和路由管理工具。本篇我们将使用 Flutter 和 GetX 实现一个简单的聊天界面,以与 ChatGPT 进行交互。
我们需要在 Flutter 项目中引入 GetX 库。在pubspec.yaml
文件中添加以下依赖:
dependencies:
flutter:
sdk: flutter
get:
在main
函数中添加以下代码:
void main() {
//在main函数第一行添加这句话
WidgetsFlutterBinding.ensureInitialized();
runApp(GetMaterialApp(
home: ChatPage(),
));
}
确保Flutter Widgets
已经初始化,并且启动应用程序的ChatPage
页面。
接下来,我们需要创建一个ApiProvider
类,用于与 OpenAI API 进行交互。这个类继承自GetConnect
,GetConnect
是一个轻量级的 HTTP 客户端,它能够简化与 API 的通信过程。以下是ApiProvider
类的代码:
class ApiProvider extends GetConnect {
/// 这里填写自己OpenAI API Key
final String apiKey = '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';
final String baseUrl = 'https://api.openai.com';
final Duration timeout = Duration(seconds: 30);
Map<String, String> _headers() {
return {
'Content-Type': 'application/json',
'Authorization': 'Bearer $apiKey',
};
}
ApiProvider() {
httpClient.baseUrl = baseUrl;
httpClient.timeout = timeout;
httpClient.addAuthenticator((request) {
request.headers.addAll(_headers());
return request;
});
}
Future<Response> completions(String body) {
return post('/v1/chat/completions', body);
}
}
在这个类中,我们设置了 API 的基础 URL 和超时时间,