Ollama with curl
1. Response has a single file only
curl http://localhost:11434/api/generate -d '{
"model": "qwen3:4b",
"prompt": "coding simple chat server with ruby. Response using JSON", "stream": false,
"format": {
"type": "object",
"properties": {
"filename": {
"type": "string"
},
"content": {
"type": "string"
}
},
"required": [
"filename",
"content"
]
}
}' | jq 2. Response can has mulitple files - qwen3:4b was not working, need more llama3:8b
# ( "prompt": "Respond ONLY with JSON. No explanations. Return exactly two files in a \"files\" array. Each object has \"filename\" and \"content\".\n\n1. server.rb: Ruby TCP server on port 8080. Uses Socket. Echoes messages.\n2. client.rb: Ruby TCP client. Connects to localhost:8080. Sends user input.\n\nExample: {\"files\":[{\"filename\":\"server.rb\",\"content\":\"require...\"},{\"filename\":\"client.rb\",\"content\":\"require...\"}]}",)
curl http://localhost:11434/api/generate -d '{
"model": "llama3:8b",
"prompt": "coding simple TCP socket chatting server, client with ruby",
"stream": false,
"format": {
"type": "object",
"properties": {
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"filename": { "type": "string" },
"content": { "type": "string" }
},
"required": ["filename", "content"]
}
}
},
"required": ["files"]
}
}' | jqhttps://github.com/ollama/ollama/blob/main/docs/api.md#generate-a-completion