From 0072c1dc6b2cca00d03a64eceb7fb84fb5bbaed5 Mon Sep 17 00:00:00 2001 From: siddu015 <116783967+siddu015@users.noreply.github.com> Date: Sun, 23 Feb 2025 13:07:18 +0530 Subject: [PATCH] Prompt of generate Code tuned for UI and normal languages --- lib/services/ollama_service.dart | 54 +++++++------------------------- lib/widgets/chatbot_widget.dart | 8 +++-- 2 files changed, 16 insertions(+), 46 deletions(-) diff --git a/lib/services/ollama_service.dart b/lib/services/ollama_service.dart index 2ff45a18..73a43c18 100644 --- a/lib/services/ollama_service.dart +++ b/lib/services/ollama_service.dart @@ -185,11 +185,7 @@ generate same to same type of test case url for test purpose } - Future generateCode({ - required dynamic requestModel, - required dynamic responseModel, - required String language - }) async { + Future generateCode({required dynamic requestModel, required dynamic responseModel, required String language}) async { final method = requestModel.httpRequestModel?.method ?.toString() ?.split('.') @@ -199,57 +195,29 @@ generate same to same type of test case url for test purpose final headers = requestModel.httpRequestModel?.enabledHeadersMap ?? {}; final params = requestModel.httpRequestModel?.enabledParamsMap ?? {}; final body = requestModel.httpRequestModel?.body; - final responseBody = responseModel.body; + + final isFrontend = language.contains('(UI)'); + final baseLanguage = language.replaceAll(' (UI)', '').replaceAll(' (Console)', ''); final prompt = ''' -Generate complete $language code for this API integration: +Generate complete, runnable $baseLanguage code for this API call: -API Request: +API Details: - URL: $endpoint - Method: $method - Headers: ${headers.isEmpty ? 'None' : jsonEncode(headers)} - Params: ${params.isEmpty ? 'None' : jsonEncode(params)} - Body: ${body ?? 'None'} -Response Structure: -${_formatResponse(responseBody)} - Requirements: -1. Single-file solution with no external config -2. Direct API URL implementation -3. Error handling for network/status errors -4. UI components matching response data -5. Ready-to-run code with example data display +1. Generate complete code that runs directly when copied. +2. ${isFrontend ? 'Include UI components to display response data.' : 'Print the response to the console.'} +3. Handle all parameter types (query, headers, body). +4. Add proper error handling. -Generate complete implementation code only. +Generate only the code with necessary imports. '''; return generateResponse(prompt); } - - String _formatResponse(dynamic response) { - if (response is Map) { - return response.entries - .map((e) => '${e.key}: ${_valueType(e.value)}') - .join('\n'); - } - return response?.toString() ?? 'No response body'; - } - - String _valueType(dynamic value) { - if (value is List) return 'List[${value.isNotEmpty ? _valueType(value.first) : '?'}]'; - if (value is Map) return 'Object'; - return value.runtimeType.toString(); - } - -// Simplified UI detection - List _detectUIElements(dynamic response) { - final elements = []; - if (response is Map) { - if (response.containsKey('image') || response.containsKey('imageUrl')) elements.add('image'); - if (response.containsKey('items') || response.containsKey('list')) elements.add('list'); - if (response.containsKey('title') || response.containsKey('name')) elements.add('title'); - } - return elements; - } } diff --git a/lib/widgets/chatbot_widget.dart b/lib/widgets/chatbot_widget.dart index 00a73bd3..47bbcc22 100644 --- a/lib/widgets/chatbot_widget.dart +++ b/lib/widgets/chatbot_widget.dart @@ -27,12 +27,14 @@ class _ChatbotWidgetState extends ConsumerState { child: ListView( shrinkWrap: true, children: [ - _buildLanguageTile('Dart'), - _buildLanguageTile('Flutter'), - _buildLanguageTile('React'), + _buildLanguageTile('Flutter (UI)'), + _buildLanguageTile('React (UI)'), + _buildLanguageTile('Dart (Console)'), _buildLanguageTile('Python'), _buildLanguageTile('JavaScript'), _buildLanguageTile('Node.js'), + _buildLanguageTile('Java'), + _buildLanguageTile('C#'), ], ), ),