[ai-json-resp] Extract JSON from LLM, Validate with Schema, Ensure Valid JSON, Auto-Retry (#1236)

This commit is contained in:
Yang Beining
2024-09-03 04:10:33 +01:00
committed by GitHub
parent 7b2b522160
commit ffc0c0976f
6 changed files with 1035 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
package main
func GetMaxDepth(data interface{}) int {
type item struct {
value interface{}
depth int
}
maxDepth := 0
stack := []item{{value: data, depth: 1}}
for len(stack) > 0 {
currentItem := stack[len(stack)-1]
stack = stack[:len(stack)-1]
if currentItem.depth > maxDepth {
maxDepth = currentItem.depth
}
switch v := currentItem.value.(type) {
case map[string]interface{}:
for _, value := range v {
stack = append(stack, item{value: value, depth: currentItem.depth + 1})
}
case []interface{}:
for _, value := range v {
stack = append(stack, item{value: value, depth: currentItem.depth + 1})
}
}
}
return maxDepth
}