Flutter 是一款跨平臺(tái)的移動(dòng)應(yīng)用開發(fā)框架,而 GetX 是 Flutter 中一種簡(jiǎn)單易用的狀態(tài)管理和路由管理工具。本篇我們將使用 Flutter 和 GetX 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的聊天界面,以與 ChatGPT 進(jìn)行交互。
我們需要在 Flutter 項(xiàng)目中引入 GetX 庫(kù)。在pubspec.yaml
文件中添加以下依賴:
dependencies:
flutter:
sdk: flutter
get:
在main
函數(shù)中添加以下代碼:
void main() {
//在main函數(shù)第一行添加這句話
WidgetsFlutterBinding.ensureInitialized();
runApp(GetMaterialApp(
home: ChatPage(),
));
}
確保Flutter Widgets
已經(jīng)初始化,并且啟動(dòng)應(yīng)用程序的ChatPage
頁(yè)面。
接下來,我們需要?jiǎng)?chuàng)建一個(gè)ApiProvider
類,用于與 OpenAI API 進(jìn)行交互。這個(gè)類繼承自GetConnect
,GetConnect
是一個(gè)輕量級(jí)的 HTTP 客戶端,它能夠簡(jiǎn)化與 API 的通信過程。以下是ApiProvider
類的代碼:文章來源:http://www.zghlxwxcb.cn/news/detail-416232.html
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);
}
}
在這個(gè)類中,我們?cè)O(shè)置了 API 的基礎(chǔ) URL 和超時(shí)時(shí)間?文章來源地址http://www.zghlxwxcb.cn/news/detail-416232.html
到了這里,關(guān)于Flutter GetX 實(shí)現(xiàn) ChatGPT 簡(jiǎn)單聊天界面的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!