fix: ChatBubble crash and DeepSeek API compatibility
- Fix ChatBubble to handle non-string content with String() wrapper - Fix API route to use generateText for non-streaming requests - Add @ai-sdk/openai-compatible for non-OpenAI providers (DeepSeek, etc.) - Use Chat Completions API instead of Responses API for compatible providers - Update ChatBubble tests and fix component exports to kebab-case - Remove stale PascalCase ChatBubble.tsx file
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"type": "excalidrawlib",
|
||||
"version": 2,
|
||||
"library": [
|
||||
{
|
||||
"id": "start-end-circle",
|
||||
"status": "published",
|
||||
"elements": [
|
||||
{
|
||||
"type": "ellipse",
|
||||
"width": 120,
|
||||
"height": 60,
|
||||
"strokeColor": "#1976d2",
|
||||
"backgroundColor": "#e3f2fd",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"roughness": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "process-rectangle",
|
||||
"status": "published",
|
||||
"elements": [
|
||||
{
|
||||
"type": "rectangle",
|
||||
"width": 160,
|
||||
"height": 80,
|
||||
"strokeColor": "#1976d2",
|
||||
"backgroundColor": "#e3f2fd",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"roughness": 0,
|
||||
"roundness": {
|
||||
"type": 3,
|
||||
"value": 8
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "decision-diamond",
|
||||
"status": "published",
|
||||
"elements": [
|
||||
{
|
||||
"type": "diamond",
|
||||
"width": 140,
|
||||
"height": 100,
|
||||
"strokeColor": "#f57c00",
|
||||
"backgroundColor": "#fff3e0",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"roughness": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "data-store",
|
||||
"status": "published",
|
||||
"elements": [
|
||||
{
|
||||
"type": "rectangle",
|
||||
"width": 140,
|
||||
"height": 80,
|
||||
"strokeColor": "#388e3c",
|
||||
"backgroundColor": "#e8f5e9",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"roughness": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "external-entity",
|
||||
"status": "published",
|
||||
"elements": [
|
||||
{
|
||||
"type": "rectangle",
|
||||
"width": 120,
|
||||
"height": 80,
|
||||
"strokeColor": "#7b1fa2",
|
||||
"backgroundColor": "#f3e5f5",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 3,
|
||||
"roughness": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
flowchart:
|
||||
viewport:
|
||||
x: 0
|
||||
y: 0
|
||||
zoom: 1
|
||||
grid:
|
||||
size: 20
|
||||
spacing:
|
||||
vertical: 100
|
||||
horizontal: 180
|
||||
elements:
|
||||
start:
|
||||
type: ellipse
|
||||
width: 120
|
||||
height: 60
|
||||
label: "Start"
|
||||
process:
|
||||
type: rectangle
|
||||
width: 160
|
||||
height: 80
|
||||
roundness: 8
|
||||
decision:
|
||||
type: diamond
|
||||
width: 140
|
||||
height: 100
|
||||
end:
|
||||
type: ellipse
|
||||
width: 120
|
||||
height: 60
|
||||
label: "End"
|
||||
|
||||
diagram:
|
||||
viewport:
|
||||
x: 0
|
||||
y: 0
|
||||
zoom: 1
|
||||
grid:
|
||||
size: 20
|
||||
spacing:
|
||||
vertical: 120
|
||||
horizontal: 200
|
||||
elements:
|
||||
component:
|
||||
type: rectangle
|
||||
width: 180
|
||||
height: 100
|
||||
roundness: 8
|
||||
database:
|
||||
type: rectangle
|
||||
width: 140
|
||||
height: 80
|
||||
service:
|
||||
type: rectangle
|
||||
width: 160
|
||||
height: 90
|
||||
roundness: 12
|
||||
external:
|
||||
type: rectangle
|
||||
width: 140
|
||||
height: 80
|
||||
|
||||
wireframe:
|
||||
viewport:
|
||||
x: 0
|
||||
y: 0
|
||||
zoom: 0.8
|
||||
grid:
|
||||
size: 20
|
||||
spacing:
|
||||
vertical: 40
|
||||
horizontal: 40
|
||||
elements:
|
||||
container:
|
||||
type: rectangle
|
||||
width: 800
|
||||
height: 600
|
||||
strokeStyle: solid
|
||||
strokeWidth: 2
|
||||
header:
|
||||
type: rectangle
|
||||
width: 800
|
||||
height: 80
|
||||
button:
|
||||
type: rectangle
|
||||
width: 120
|
||||
height: 40
|
||||
roundness: 4
|
||||
input:
|
||||
type: rectangle
|
||||
width: 300
|
||||
height: 40
|
||||
roundness: 4
|
||||
text:
|
||||
type: text
|
||||
fontSize: 16
|
||||
|
||||
dataflow:
|
||||
viewport:
|
||||
x: 0
|
||||
y: 0
|
||||
zoom: 1
|
||||
grid:
|
||||
size: 20
|
||||
spacing:
|
||||
vertical: 120
|
||||
horizontal: 200
|
||||
elements:
|
||||
process:
|
||||
type: ellipse
|
||||
width: 140
|
||||
height: 80
|
||||
label: "Process"
|
||||
datastore:
|
||||
type: rectangle
|
||||
width: 140
|
||||
height: 80
|
||||
label: "Data Store"
|
||||
external:
|
||||
type: rectangle
|
||||
width: 120
|
||||
height: 80
|
||||
strokeWidth: 3
|
||||
label: "External Entity"
|
||||
dataflow:
|
||||
type: arrow
|
||||
strokeWidth: 2
|
||||
label: "Data Flow"
|
||||
Reference in New Issue
Block a user