mirror of
https://github.com/foss42/apidash.git
synced 2025-12-01 18:28:25 +08:00
Responsiveness added to ToolCalling code
This commit is contained in:
@@ -98,6 +98,7 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
|
|||||||
try {
|
try {
|
||||||
setState(() {
|
setState(() {
|
||||||
generatedToolCode = null;
|
generatedToolCode = null;
|
||||||
|
index = 1;
|
||||||
});
|
});
|
||||||
final res = await generateAPIToolUsingRequestData(
|
final res = await generateAPIToolUsingRequestData(
|
||||||
ref: ref,
|
ref: ref,
|
||||||
@@ -108,6 +109,7 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
|
|||||||
if (res == null) {
|
if (res == null) {
|
||||||
setState(() {
|
setState(() {
|
||||||
generatedToolCode = '';
|
generatedToolCode = '';
|
||||||
|
index = 0;
|
||||||
});
|
});
|
||||||
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
|
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
|
||||||
content: Text(
|
content: Text(
|
||||||
@@ -120,8 +122,12 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
|
|||||||
}
|
}
|
||||||
setState(() {
|
setState(() {
|
||||||
generatedToolCode = res;
|
generatedToolCode = res;
|
||||||
|
index = 1;
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
setState(() {
|
||||||
|
index = 0;
|
||||||
|
});
|
||||||
String errMsg = 'Unexpected Error Occured';
|
String errMsg = 'Unexpected Error Occured';
|
||||||
if (e.toString().contains('NO_DEFAULT_LLM')) {
|
if (e.toString().contains('NO_DEFAULT_LLM')) {
|
||||||
errMsg = "Please Select Default AI Model in Settings";
|
errMsg = "Please Select Default AI Model in Settings";
|
||||||
@@ -139,26 +145,65 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Container(
|
return LayoutBuilder(builder: (context, constraints) {
|
||||||
height: 600,
|
final dialogWidth = constraints.maxWidth;
|
||||||
width: MediaQuery.of(context).size.width * 0.8,
|
final isExpandedWindow = dialogWidth > WindowWidth.expanded.value;
|
||||||
child: Row(
|
final isLargeWindow = dialogWidth > WindowWidth.large.value;
|
||||||
children: [
|
final isExtraLargeWindow = dialogWidth > WindowWidth.large.value;
|
||||||
Expanded(child: ToolRequirementSelectorPage(
|
|
||||||
onGenerateCallback: (agent, lang) {
|
if (isExtraLargeWindow || isLargeWindow || isExpandedWindow) {
|
||||||
setState(() {
|
return Container(
|
||||||
selectedLanguage = lang;
|
height: 600,
|
||||||
selectedAgent = agent;
|
width: MediaQuery.of(context).size.width * 0.8,
|
||||||
});
|
child: Row(
|
||||||
generateAPITool();
|
children: [
|
||||||
},
|
Flexible(
|
||||||
)),
|
flex: 2,
|
||||||
GeneratedToolCodeCopyPage(
|
child: ToolRequirementSelectorPage(
|
||||||
toolCode: generatedToolCode,
|
onGenerateCallback: (agent, lang) {
|
||||||
language: selectedLanguage.trim(),
|
setState(() {
|
||||||
|
selectedLanguage = lang;
|
||||||
|
selectedAgent = agent;
|
||||||
|
});
|
||||||
|
generateAPITool();
|
||||||
|
},
|
||||||
|
)),
|
||||||
|
Expanded(
|
||||||
|
flex: 3,
|
||||||
|
child: GeneratedToolCodeCopyPage(
|
||||||
|
toolCode: generatedToolCode,
|
||||||
|
language: selectedLanguage.trim(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
],
|
);
|
||||||
),
|
} else {
|
||||||
);
|
return Container(
|
||||||
|
height: 600,
|
||||||
|
// width: MediaQuery.of(context).size.width * 0.8,
|
||||||
|
child: IndexedStack(
|
||||||
|
index: index,
|
||||||
|
children: [
|
||||||
|
Center(
|
||||||
|
child: ToolRequirementSelectorPage(
|
||||||
|
onGenerateCallback: (agent, lang) {
|
||||||
|
setState(() {
|
||||||
|
selectedLanguage = lang;
|
||||||
|
selectedAgent = agent;
|
||||||
|
});
|
||||||
|
generateAPITool();
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
GeneratedToolCodeCopyPage(
|
||||||
|
toolCode: generatedToolCode,
|
||||||
|
language: selectedLanguage.trim(),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ class GeneratedToolCodeCopyPage extends StatelessWidget {
|
|||||||
return Container(
|
return Container(
|
||||||
color: const Color.fromARGB(26, 123, 123, 123),
|
color: const Color.fromARGB(26, 123, 123, 123),
|
||||||
padding: EdgeInsets.all(20),
|
padding: EdgeInsets.all(20),
|
||||||
width: MediaQuery.of(context).size.width * 0.50,
|
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
|
|||||||
@@ -39,11 +39,12 @@ class _ToolRequirementSelectorPageState
|
|||||||
final lightMode = Theme.of(context).brightness == Brightness.light;
|
final lightMode = Theme.of(context).brightness == Brightness.light;
|
||||||
|
|
||||||
return Container(
|
return Container(
|
||||||
width: MediaQuery.of(context).size.width * 0.4, // Large dialog
|
constraints: BoxConstraints.expand(),
|
||||||
padding: EdgeInsets.all(30),
|
padding: EdgeInsets.all(30),
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
"Generate API Tool",
|
"Generate API Tool",
|
||||||
@@ -124,7 +125,11 @@ class _ToolRequirementSelectorPageState
|
|||||||
isOutlined: true,
|
isOutlined: true,
|
||||||
),
|
),
|
||||||
kVSpacer20,
|
kVSpacer20,
|
||||||
Row(
|
Wrap(
|
||||||
|
runSpacing: 10,
|
||||||
|
alignment: WrapAlignment.center,
|
||||||
|
runAlignment: WrapAlignment.center,
|
||||||
|
// mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
FilledButton.tonalIcon(
|
FilledButton.tonalIcon(
|
||||||
style: FilledButton.styleFrom(
|
style: FilledButton.styleFrom(
|
||||||
@@ -161,34 +166,37 @@ class DefaultLLModelSelectorWidget extends ConsumerWidget {
|
|||||||
final settings = ref.watch(settingsProvider);
|
final settings = ref.watch(settingsProvider);
|
||||||
return Opacity(
|
return Opacity(
|
||||||
opacity: 0.8,
|
opacity: 0.8,
|
||||||
child: Row(
|
child: Container(
|
||||||
children: [
|
width: 200,
|
||||||
Padding(
|
child: Row(
|
||||||
padding: EdgeInsets.only(left: 3),
|
children: [
|
||||||
child: Text(
|
Padding(
|
||||||
"with",
|
padding: EdgeInsets.only(left: 3),
|
||||||
style: TextStyle(
|
child: Text(
|
||||||
color: Theme.of(context).brightness == Brightness.light
|
"with",
|
||||||
? Colors.black54
|
style: TextStyle(
|
||||||
: Colors.white60,
|
color: Theme.of(context).brightness == Brightness.light
|
||||||
fontSize: 15),
|
? Colors.black54
|
||||||
|
: Colors.white60,
|
||||||
|
fontSize: 15),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
SizedBox(width: 5),
|
||||||
SizedBox(width: 5),
|
AIModelSelectorButton(
|
||||||
AIModelSelectorButton(
|
aiRequestModel:
|
||||||
aiRequestModel:
|
AIRequestModel.fromJson(settings.defaultAIModel ?? {}),
|
||||||
AIRequestModel.fromJson(settings.defaultAIModel ?? {}),
|
onModelUpdated: (d) {
|
||||||
onModelUpdated: (d) {
|
ref.read(settingsProvider.notifier).update(
|
||||||
ref.read(settingsProvider.notifier).update(
|
defaultAIModel: d.copyWith(
|
||||||
defaultAIModel: d.copyWith(
|
modelConfigs: [],
|
||||||
modelConfigs: [],
|
stream: null,
|
||||||
stream: null,
|
systemPrompt: '',
|
||||||
systemPrompt: '',
|
userPrompt: '').toJson());
|
||||||
userPrompt: '').toJson());
|
},
|
||||||
},
|
),
|
||||||
),
|
kVSpacer5,
|
||||||
kVSpacer5,
|
],
|
||||||
],
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user