diff --git a/lib/eddy/eddy.skeleton.dart b/lib/eddy/eddy.skeleton.dart index 5109e2c..8cd8eae 100644 --- a/lib/eddy/eddy.skeleton.dart +++ b/lib/eddy/eddy.skeleton.dart @@ -10,7 +10,7 @@ class GPTChatbot { Future generateResponse(String prompt) async { String apiUrl = "$_apiUrl$_modelId/completions"; - Map data = {"prompt": prompt, "temperature": 0.5, "max_tokens": 500}; + Map data = {"prompt": prompt, "temperature": 0.5, "max_tokens": 50}; String body = json.encode(data); final response = await http.post(Uri.parse(apiUrl), diff --git a/lib/eddy/eddy.summarizer.dart b/lib/eddy/eddy.summarizer.dart index 06cec56..4d98445 100644 --- a/lib/eddy/eddy.summarizer.dart +++ b/lib/eddy/eddy.summarizer.dart @@ -1,42 +1,32 @@ import 'dart:convert'; import 'package:http/http.dart' as http; -import 'package:universal_html/controller.dart'; -import 'package:universal_html/html.dart' as html; -import 'package:universal_html/indexed_db.dart'; -import 'package:universal_html/js.dart'; -import 'package:universal_html/js_util.dart'; -import 'package:universal_html/parsing.dart'; -import 'package:universal_html/svg.dart'; -import 'package:universal_html/web_audio.dart'; -import 'package:universal_html/web_gl.dart'; +import 'package:html/parser.dart' show parse; class ArticleSummarizer { final String _apiKey; final String _modelId; final String _apiUrl = "https://api.openai.com/v1/engines/"; - ArticleSummarizer summarizer = ArticleSummarizer( - "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", "davinci"); + ArticleSummarizer(this._apiKey, this._modelId); - html({required String data}) { - Future summarizeArticle(String htmlContent) async { - String textContent = html(data: htmlContent).text; - String apiUrl = "$_apiUrl$_modelId/completions"; - Map data = { - "prompt": "Summarize the following article: $textContent", - "temperature": 0.5, - "max_tokens": 50 - }; - String body = json.encode(data); - final response = await http.post(Uri.parse(apiUrl), - headers: {"Authorization": "Bearer $_apiKey"}, body: body); + Future summarizeArticle(String htmlContent) async { + String? textContent = parse(htmlContent).text; + String apiUrl = "$_apiUrl$_modelId/completions"; + Map data = { + "prompt": "Summarize the following article: $textContent", + "temperature": 0.5, + "max_tokens": 50 + }; + String body = json.encode(data); + + final response = await http.post(Uri.parse(apiUrl), + headers: {"Authorization": "Bearer $_apiKey"}, body: body); - if (response.statusCode == 200) { - Map jsonResponse = json.decode(response.body); - return jsonResponse['choices'][0]['text']; - } else { - throw Exception('Failed to generate summary.'); - } + if (response.statusCode == 200) { + Map jsonResponse = json.decode(response.body); + return jsonResponse['choices'][0]['text']; + } else { + throw Exception('Failed to generate summary.'); + } } - } -} +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index f8d907d..abfcd00 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,4 +1,3 @@ -import 'package:edified/screens/Quiz/quiz_main.dart'; import 'package:edified/screens/e_books.dart'; import 'package:edified/screens/home_screen.dart'; import 'package:edified/screens/login_screen/login.dart'; @@ -32,7 +31,6 @@ class MyApp extends StatelessWidget { OnlineCourses.id: (context) => OnlineCourses(), Ebooks.id: (context) => Ebooks(), StudyMaterial.id: (context) => StudyMaterial(), - Quizpage.id: (context) => Quizpage(), }, ); } diff --git a/lib/screens/api_service.dart b/lib/screens/api_service.dart new file mode 100644 index 0000000..0372368 --- /dev/null +++ b/lib/screens/api_service.dart @@ -0,0 +1,11 @@ +import 'dart:convert'; +import 'package:http/http.dart' as http; + +Future> fetchData() async { + final response = await http.get(Uri.parse('https://api.openai.com/v1/engines/')); + if (response.statusCode == 200) { + return json.decode(response.body); + } else { + throw Exception('Failed to fetch data'); + } +} \ No newline at end of file diff --git a/lib/screens/assistanteddy.dart b/lib/screens/assistanteddy.dart new file mode 100644 index 0000000..b93e75c --- /dev/null +++ b/lib/screens/assistanteddy.dart @@ -0,0 +1,39 @@ +import 'package:flutter/material.dart'; + +class ChatbotButton extends StatefulWidget { + final Function onSendMessage; + + ChatbotButton({required this.onSendMessage}); + + @override + _ChatbotButtonState createState() => _ChatbotButtonState(); +} + +class _ChatbotButtonState extends State { + bool _isChatting = false; + + @override + Widget build(BuildContext context) { + return Positioned( + bottom: 16.0, + right: 16.0, + child: FloatingActionButton( + onPressed: () async { + setState(() { + _isChatting = true; + }); + + // Call the onSendMessage function passed to this widget + await widget.onSendMessage(); + + setState(() { + _isChatting = false; + }); + }, + child: _isChatting + ? CircularProgressIndicator() + : Icon(Icons.chat_bubble), + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/home_screen.dart b/lib/screens/home_screen.dart index f403193..1b226cb 100644 --- a/lib/screens/home_screen.dart +++ b/lib/screens/home_screen.dart @@ -5,6 +5,10 @@ import 'package:edified/screens/welcome_screen.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:edified/screens/empty_screen.dart'; +import 'package:edified/eddy/eddy.skeleton.dart'; +import 'package:edified/eddy/eddy.summarizer.dart'; + +import '../search_for_gpt.dart'; import 'Quiz/quiz_main.dart'; @@ -303,7 +307,15 @@ class _HomeScreenState extends State { ), ), floatingActionButton: FloatingActionButton( - onPressed: (){}, + onPressed: ()async{ + + Navigator.pushNamed(context, SearchForGpt.id); + + GPTChatbot chatbot = GPTChatbot("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", "davinci"); + String response = await chatbot.generateResponse("Hello"); + print('chal raha he'); + + }, child: Icon(Icons.add), backgroundColor: Colors.white70, ), @@ -378,3 +390,27 @@ class MyDrawer extends StatelessWidget { ); } } + +// class MyButtonForAPI extends StatefulWidget { +// +// @override +// State createState() => _MyButtonForAPIState(); +// } +// +// class _MyButtonForAPIState extends State { +// @override +// Widget build(BuildContext context) { +// return Scaffold( +// floatingActionButton: FloatingActionButton( +// onPressed: () async { +// GPTChatbot chatbot = GPTChatbot("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", "davinci"); +// String response = await chatbot.generateResponse("Hello"); +// }, +// child: Icon(Icons.add), +// backgroundColor: Colors.white70, +// ), +// floatingActionButtonLocation: FloatingActionButtonLocation.endFloat, +// ); +// } +// } +// diff --git a/lib/search_for_gpt.dart b/lib/search_for_gpt.dart new file mode 100644 index 0000000..da12061 --- /dev/null +++ b/lib/search_for_gpt.dart @@ -0,0 +1,29 @@ +import 'eddy/eddy.summarizer.dart'; +import 'package:flutter/material.dart'; + +class SearchForGpt extends StatefulWidget { + + static String id = 'search_for_gpt'; + + void main() async { + + String apiKey = "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"; + String modelId = "davinci"; + ArticleSummarizer summarizer = ArticleSummarizer(apiKey, modelId); + String htmlContent = "

Article title

Article content goes here...

"; + String summary = await summarizer.summarizeArticle(htmlContent); + print(summary); + } + + @override + State createState() => _SearchForGptState(); +} + +class _SearchForGptState extends State { + @override + Widget build(BuildContext context) { + return const Placeholder(); + } +} + + diff --git a/pubspec.lock b/pubspec.lock index 1515da2..e429af3 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" url: "https://pub.dev" source: hosted - version: "2.10.0" + version: "2.11.0" boolean_selector: dependency: transitive description: @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: characters - sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.3.0" charcode: dependency: transitive description: @@ -77,10 +77,10 @@ packages: dependency: transitive description: name: collection - sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" url: "https://pub.dev" source: hosted - version: "1.17.0" + version: "1.17.1" csslib: dependency: transitive description: @@ -348,10 +348,10 @@ packages: dependency: transitive description: name: js - sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 url: "https://pub.dev" source: hosted - version: "0.6.5" + version: "0.6.7" lints: dependency: transitive description: @@ -364,26 +364,26 @@ packages: dependency: transitive description: name: matcher - sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" url: "https://pub.dev" source: hosted - version: "0.12.13" + version: "0.12.15" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "586678f20e112219ed0f73215f01bcdf1d769824ba2ebae45ad918a9bfde9bdb" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.3.0" meta: dependency: transitive description: name: meta - sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.9.1" openai: dependency: "direct main" description: @@ -396,10 +396,10 @@ packages: dependency: transitive description: name: path - sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" url: "https://pub.dev" source: hosted - version: "1.8.2" + version: "1.8.3" path_provider: dependency: "direct main" description: @@ -489,10 +489,10 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: @@ -529,10 +529,10 @@ packages: dependency: transitive description: name: test_api - sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb url: "https://pub.dev" source: hosted - version: "0.4.16" + version: "0.5.1" typed_data: dependency: transitive description: @@ -582,5 +582,5 @@ packages: source: hosted version: "1.0.0" sdks: - dart: ">=2.19.6 <3.0.0" + dart: ">=3.0.0-0 <4.0.0" flutter: ">=3.3.0"