我正在尝试通过cURL请求将聊天历史传送到Google Gemini API。我希望在请求中同时提供用户的上一次输入和模型的上一次回应。以下是我使用的cURL命令:
curl --location 'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=' \--header 'Content-Type: application/json' \--data '{ "contents": [ { "role": "model", "parts": [ { "text": "...model data" } ] }, { "role": "user", "parts": [ { "text": "...user input" } ] } ], "history": [ { "role": "user", "parts": [ { "text": "Hello, I have 2 dogs in my house." } ] }, { "role": "model", "parts": [ { "text": "Great to meet you. What would you like to know?" } ] } ]}'
我不确定我是否正确地格式化了内容和历史部分。
我期望模型能理解之前的交流并相应地继续对话。
回答:
您需要将聊天内容添加到"parts"
列表中,这样Gemini才能记住聊天历史。
示例数据:
{ "contents": [ { "parts": [ {"text": "User: Hello"}, {"text": "User: What was my previous message?"} ] } ]}
响应:
{ "candidates": [ { "content": { "parts": [ { "text": "Your previous message was: \"Hello\"\n" } ], "role": "model" }, "finishReason": "STOP", "avgLogprobs": -0.08453522125879924 } ], "usageMetadata": { "promptTokenCount": 11, "candidatesTokenCount": 9, "totalTokenCount": 20 }, "modelVersion": "gemini-1.5-flash"}
对于交互模式,您需要将内容添加到contents
列表中,这样Gemini才能记住聊天历史:
示例数据:
{ "contents": [ {"role":"user", "parts":[{ "text": "Hello"}]}, {"role": "model", "parts":[{ "text": "Great to meet you. What would you like to know?"}]}, {"role":"user", "parts":[{ "text": "What was my previous message"}]}, ]}
响应:
{ "candidates": [ { "content": { "parts": [ { "text": "Your previous message was \"Hello\".\n" } ], "role": "model" }, "finishReason": "STOP", "avgLogprobs": -0.30310314893722534 } ], "usageMetadata": { "promptTokenCount": 21, "candidatesTokenCount": 8, "totalTokenCount": 29 }, "modelVersion": "gemini-1.5-flash"}