#include "jsondata.h" #include CJsonOper::CJsonOper() { } CJsonOper::~CJsonOper() { } std::string CJsonOper::format_request(const std::string& content) { // 定义变量 std::string model = "deepseek-r1"; std::string role = "user"; // 构造 JSON 对象 nlohmann::json json_data = {{"model", model}, {"messages", {{{"role", role}, {"content", content}}}}}; return json_data.dump(); } Message CJsonOper::parse(const std::string& data) { Message re; json j = json::parse(data); if (j.contains("choices") && j["choices"].is_array() && !j["choices"].empty()) { const auto& message = j["choices"][0]["message"]; if (message.contains("content")) { re.message_content = message["content"].get(); } if (message.contains("reasoning_content")) { re.reasoning_content = message["reasoning_content"].get(); } } if (j.contains("usage")) { const auto& usage = j["usage"]; if (usage.contains("prompt_tokens")) { re.prompt_tokens = usage["prompt_tokens"].get(); } if (usage.contains("completion_tokens")) { re.completion_tokens = usage["completion_tokens"].get(); } if (usage.contains("total_tokens")) { re.total_tokens = usage["total_tokens"].get(); } } if (j.contains("id")) { re.id = j["id"].get(); } return re; } bool CJsonOper::save_md(const std::string& data, const std::string& id) { std::ofstream of(id + ".md"); if (!of.is_open()) { std::cout << "can't open " << id << std::endl; return false; } of << data; of.close(); return true; }