# Qdrant API 兼容性修复文档

## 问题描述

在使用 Qdrant 云服务时，`get_index_status` 工具出现错误：
```
ERROR | 获取 Qdrant 集合信息失败: 'CollectionInfo' object has no attribute 'vectors_count'
```

## 根本原因

Qdrant Python SDK 更新后，`CollectionInfo` 对象的属性名称发生了变化：
- **旧版本**: `collection_info.vectors_count`
- **新版本**: `collection_info.points_count`

代码使用了已废弃的 `vectors_count` 属性，导致运行时错误。

## 修复详情

### 修改文件：`src/core/index_manager.py`

**位置**: 第 117 行

**修改前**:
```python
vectors_count = collection_info.vectors_count or 0
```

**修改后**:
```python
# Qdrant API 使用 points_count 而不是 vectors_count
vectors_count = collection_info.points_count or 0
```

## 验证结果

修复后，运行以下命令测试：

```bash
python mcp_http_server.py
```

通过 MCP 客户端调用：
```python
# 获取索引状态
get_index_status(verbose=True)
```

应该能够正常返回 Qdrant 集合的向量数量信息：
```json
{
  "vector_index_exists": true,
  "collection_name": "knowledge_base",
  "vectors_count": 7,
  "vector_index_loaded": true,
  "status": "ready"
}
```

## 影响范围

- ✅ 修复了 Qdrant 集合信息获取功能
- ✅ 确保 `get_index_status` 工具正常工作
- ✅ 兼容最新版本的 Qdrant Python SDK (1.x)
- ✅ 不影响本地向量存储功能
- ✅ 不影响 BM25 索引功能

## 相关链接

- [Qdrant Python SDK 文档](https://github.com/qdrant/qdrant-client)
- 修复文件: [`src/core/index_manager.py`](../src/core/index_manager.py:117)

## 修复日期

2026-01-09
