Fraser commited on
Commit
d8ca9dc
·
1 Parent(s): e3f93ae

try help json

Browse files
src/lib/components/PicletGenerator/PicletGenerator.svelte CHANGED
@@ -707,13 +707,23 @@ Write your response within \`\`\`json\`\`\``;
707
  // Get the last message (assistant's response)
708
  const lastMessage = chatHistory[chatHistory.length - 1];
709
 
 
 
710
  if (lastMessage && lastMessage.content && Array.isArray(lastMessage.content)) {
711
- // Extract text content from the message
712
  const textContents = lastMessage.content
713
  .filter((item: any) => item.type === "text")
714
- .map((item: any) => item.content)
715
- .join("\n");
 
 
 
716
  responseText = textContents || "Response received but no text content found";
 
 
 
 
 
717
  } else if (lastMessage && lastMessage.role === "assistant") {
718
  // Fallback - if content structure is different
719
  responseText = JSON.stringify(lastMessage, null, 2);
@@ -742,12 +752,45 @@ Write your response within \`\`\`json\`\`\``;
742
  }
743
 
744
  try {
745
- // Remove any trailing text after the JSON object
746
- const jsonMatch = cleanJson.match(/^\s*\{[\s\S]*?\}\s*/);
747
  if (jsonMatch) {
748
  cleanJson = jsonMatch[0];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
749
  }
750
 
 
 
751
  const parsedStats = JSON.parse(cleanJson.trim());
752
 
753
  // Validate the battle-ready monster structure
 
707
  // Get the last message (assistant's response)
708
  const lastMessage = chatHistory[chatHistory.length - 1];
709
 
710
+ console.log('Full message structure:', JSON.stringify(lastMessage, null, 2));
711
+
712
  if (lastMessage && lastMessage.content && Array.isArray(lastMessage.content)) {
713
+ // Extract ALL text content from the message more robustly
714
  const textContents = lastMessage.content
715
  .filter((item: any) => item.type === "text")
716
+ .map((item: any) => {
717
+ console.log('Content item:', item);
718
+ return item.content || '';
719
+ })
720
+ .join(""); // Join without separator to avoid breaking JSON
721
  responseText = textContents || "Response received but no text content found";
722
+ console.log('Extracted text length:', responseText.length);
723
+ console.log('Extracted text preview:', responseText.substring(0, 200) + '...');
724
+ } else if (lastMessage && typeof lastMessage === 'string') {
725
+ // Handle case where the message is a plain string
726
+ responseText = lastMessage;
727
  } else if (lastMessage && lastMessage.role === "assistant") {
728
  // Fallback - if content structure is different
729
  responseText = JSON.stringify(lastMessage, null, 2);
 
752
  }
753
 
754
  try {
755
+ // Remove any trailing text after the JSON object
756
+ let jsonMatch = cleanJson.match(/^\s*\{[\s\S]*?\}\s*/);
757
  if (jsonMatch) {
758
  cleanJson = jsonMatch[0];
759
+ } else {
760
+ // If no complete JSON found, try to find the start and attempt to complete it
761
+ console.warn('No complete JSON found, attempting recovery...');
762
+
763
+ // Find the opening brace
764
+ const startIndex = cleanJson.indexOf('{');
765
+ if (startIndex !== -1) {
766
+ cleanJson = cleanJson.substring(startIndex);
767
+ console.log('Partial JSON found:', cleanJson.substring(0, 300) + '...');
768
+
769
+ // Try to balance braces if the JSON is incomplete
770
+ let braceCount = 0;
771
+ let lastValidIndex = -1;
772
+ for (let i = 0; i < cleanJson.length; i++) {
773
+ if (cleanJson[i] === '{') braceCount++;
774
+ if (cleanJson[i] === '}') {
775
+ braceCount--;
776
+ if (braceCount === 0) {
777
+ lastValidIndex = i;
778
+ break;
779
+ }
780
+ }
781
+ }
782
+
783
+ if (lastValidIndex !== -1) {
784
+ cleanJson = cleanJson.substring(0, lastValidIndex + 1);
785
+ console.log('Balanced JSON extracted');
786
+ } else {
787
+ throw new Error('JSON appears to be truncated - unable to balance braces');
788
+ }
789
+ }
790
  }
791
 
792
+ console.log('Final JSON to parse (length: ' + cleanJson.length + '):', cleanJson.substring(0, 500) + '...');
793
+
794
  const parsedStats = JSON.parse(cleanJson.trim());
795
 
796
  // Validate the battle-ready monster structure
src/lib/components/PicletGenerator/WorkflowProgress.svelte CHANGED
@@ -22,6 +22,11 @@
22
  },
23
  {
24
  id: 'captioning',
 
 
 
 
 
25
  label: 'Piclet Design',
26
  description: 'Creating concept & lore'
27
  },
@@ -30,6 +35,11 @@
30
  label: 'Battle Stats',
31
  description: 'Generating abilities'
32
  },
 
 
 
 
 
33
  {
34
  id: 'generating',
35
  label: 'Image Generation',
 
22
  },
23
  {
24
  id: 'captioning',
25
+ label: 'Image Analysis',
26
+ description: 'Analyzing your photo'
27
+ },
28
+ {
29
+ id: 'conceptualizing',
30
  label: 'Piclet Design',
31
  description: 'Creating concept & lore'
32
  },
 
35
  label: 'Battle Stats',
36
  description: 'Generating abilities'
37
  },
38
+ {
39
+ id: 'promptCrafting',
40
+ label: 'Art Planning',
41
+ description: 'Preparing visual prompt'
42
+ },
43
  {
44
  id: 'generating',
45
  label: 'Image Generation',