debug: 添加详细调试日志并修复API端点
主要修改: 1. 添加完整的API请求和响应调试日志 2. 修复API端点:从engines改为dataStores(符合Google Cloud文档) 3. 修正配置字段名:使用data_store_id而不是vertex_ai_data_store_id 这些修改将帮助我们: - 查看实际发送的请求格式 - 查看API返回的响应结构 - 使用正确的Vertex AI Search API端点 下一步可以通过日志分析为什么搜索结果为0。
This commit is contained in:
parent
0a9e7d4539
commit
834408addf
|
|
@ -521,13 +521,21 @@ async fn execute_vertex_ai_search(
|
||||||
payload["filter"] = serde_json::Value::String(combined_filter);
|
payload["filter"] = serde_json::Value::String(combined_filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 7. 构建请求URL
|
// 7. 构建请求URL - 使用正确的 dataStores 端点
|
||||||
let search_url = format!(
|
let search_url = format!(
|
||||||
"https://discoveryengine.googleapis.com/v1beta/projects/{}/locations/global/collections/default_collection/engines/{}/servingConfigs/default_search:search",
|
"https://discoveryengine.googleapis.com/v1beta/projects/{}/locations/global/collections/default_collection/dataStores/{}/servingConfigs/default_search:search",
|
||||||
global_config.google_project_id,
|
global_config.google_project_id,
|
||||||
global_config.vertex_ai_app_id
|
global_config.data_store_id
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// 添加调试日志:打印完整的请求 payload
|
||||||
|
if request.config.debug_mode {
|
||||||
|
eprintln!("=== 发送到 Vertex AI Search 的完整请求 ===");
|
||||||
|
eprintln!("URL: {}", search_url);
|
||||||
|
eprintln!("Payload: {}", serde_json::to_string_pretty(&payload).unwrap_or_else(|_| "无法序列化请求".to_string()));
|
||||||
|
eprintln!("=== 请求结束 ===");
|
||||||
|
}
|
||||||
|
|
||||||
// 8. 创建带有超时配置的客户端
|
// 8. 创建带有超时配置的客户端
|
||||||
let client = reqwest::Client::builder()
|
let client = reqwest::Client::builder()
|
||||||
.timeout(std::time::Duration::from_secs(60))
|
.timeout(std::time::Duration::from_secs(60))
|
||||||
|
|
@ -658,6 +666,11 @@ fn convert_vertex_response_to_search_results(
|
||||||
) -> Result<SearchResponse, anyhow::Error> {
|
) -> Result<SearchResponse, anyhow::Error> {
|
||||||
let mut results = Vec::new();
|
let mut results = Vec::new();
|
||||||
|
|
||||||
|
// 添加调试日志:打印完整的 API 响应
|
||||||
|
eprintln!("=== Vertex AI Search API 完整响应 ===");
|
||||||
|
eprintln!("{}", serde_json::to_string_pretty(vertex_response).unwrap_or_else(|_| "无法序列化响应".to_string()));
|
||||||
|
eprintln!("=== 响应结束 ===");
|
||||||
|
|
||||||
// 解析 Vertex AI Search 响应
|
// 解析 Vertex AI Search 响应
|
||||||
if let Some(vertex_results) = vertex_response.get("results").and_then(|v| v.as_array()) {
|
if let Some(vertex_results) = vertex_response.get("results").and_then(|v| v.as_array()) {
|
||||||
eprintln!("收到 {} 个原始搜索结果", vertex_results.len());
|
eprintln!("收到 {} 个原始搜索结果", vertex_results.len());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue