You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让PaLM API输出CSV格式结果而非Markdown格式?

问题描述

刚接触PaLM ML API,尝试生成CSV格式的返回结果,但无论如何操作都得到Markdown格式。

示例代码:

const result = await client.generateText({
  model: MODEL_NAME,
  prompt: {
      text: 'Generate a list of top 10 websites and return results in comma separated value format, not markdown format. Put field names in first row.',
      format: 'csv',
      delimiter: ',',
      quote: '"', 
    },
});

实际输出始终为Markdown表格格式:

| Rank | Website | Alexa Global Rank |
|---|---|---|
| 1 | Google | 1 |
| 2 | YouTube | 2 |
| 3 | Facebook | 3 |
| 4 | Baidu | 4 |
| 5 | Wikipedia | 5 |
| 6 | Amazon | 6 |
| 7 | Tencent | 7 |
| 8 | Twitter | 8 |
| 9 | Instagram | 9 |
| 10 | Reddit | 10 |

请问是否有办法直接输出CSV格式?还是必须自行将Markdown转换为CSV?


解决方案

1. 明确:PaLM generateText 接口无内置CSV输出参数

你代码里的format、delimiter、quote并不是PaLM API的标准参数,API不会识别这些配置,因此无法通过添加这类参数强制输出CSV。

2. 优化Prompt指令,引导模型输出纯CSV

把prompt写得更明确、有约束性,甚至给出CSV示例,能大幅提升模型输出符合要求格式的概率:

const result = await client.generateText({
  model: MODEL_NAME,
  prompt: {
      text: `生成全球排名前10的网站列表,仅返回纯CSV文本,不要Markdown格式、不要表格、不要额外说明。
第一行是表头:Rank,Website,Alexa Global Rank
后续每行是用逗号分隔的数据,示例:
1,Google,1
2,YouTube,2`
    },
});

3. 若仍无法解决,自行转换Markdown表格到CSV

如果模型还是返回Markdown表格,可以用简单的解析函数处理:

function markdownTableToCsv(markdown) {
  // 分割行并过滤空行
  const rows = markdown.split('\n').filter(row => row.trim() !== '');
  // 移除分隔线行,处理每行的|分隔符
  const csvRows = rows
    .filter(row => !row.includes('|---'))
    .map(row => row.replace(/^\|+|\|+$/g, '').split('|').map(cell => cell.trim()).join(','));
  return csvRows.join('\n');
}

// 使用示例
const markdownOutput = `| Rank | Website | Alexa Global Rank |
|---|---|---|
| 1 | Google | 1 |`;
const csvOutput = markdownTableToCsv(markdownOutput);
console.log(csvOutput);

内容的提问来源于stack exchange,提问作者mike hennessy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 16:42:32