ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,183 @@
|
||||
# Cursor Chat: ai-agent-book
|
||||
|
||||
## Metadata
|
||||
- **Project**: ai-agent-book
|
||||
- **Path**: `/Users/boj`
|
||||
- **Date**: 2025-09-25 23:05:00
|
||||
- **Session ID**: `749cbd8e-5ad5-47d2-82de-4604d4f83a94`
|
||||
|
||||
## Conversation
|
||||
|
||||
### 👤 You
|
||||
|
||||
sparse-embedding % python demo.py
|
||||
2025-09-25 23:04:48,061 - INFO - Starting Educational Sparse Vector Search Engine Demo
|
||||
2025-09-25 23:04:48,061 - INFO - Make sure the server is running (python server.py)
|
||||
2025-09-25 23:04:48,061 - INFO - Waiting for server to be ready...
|
||||
2025-09-25 23:04:48,064 - INFO - Server is ready!
|
||||
2025-09-25 23:04:48,064 - INFO - Clearing existing index...
|
||||
2025-09-25 23:04:48,065 - INFO - Index cleared successfully
|
||||
2025-09-25 23:04:48,065 - INFO -
|
||||
==================================================
|
||||
2025-09-25 23:04:48,065 - INFO - INDEXING SAMPLE DOCUMENTS
|
||||
2025-09-25 23:04:48,065 - INFO - ==================================================
|
||||
2025-09-25 23:04:48,065 - INFO -
|
||||
Indexing document 1/10: Python Programming
|
||||
2025-09-25 23:04:48,067 - INFO - ✓ Indexed with ID: 0
|
||||
2025-09-25 23:04:48,067 - INFO -
|
||||
Indexing document 2/10: Introduction to Machine Learning
|
||||
2025-09-25 23:04:48,068 - INFO - ✓ Indexed with ID: 1
|
||||
2025-09-25 23:04:48,068 - INFO -
|
||||
Indexing document 3/10: NLP Basics
|
||||
2025-09-25 23:04:48,069 - INFO - ✓ Indexed with ID: 2
|
||||
2025-09-25 23:04:48,069 - INFO -
|
||||
Indexing document 4/10: Data Structures Overview
|
||||
2025-09-25 23:04:48,070 - INFO - ✓ Indexed with ID: 3
|
||||
2025-09-25 23:04:48,070 - INFO -
|
||||
Indexing document 5/10: JavaScript Essentials
|
||||
2025-09-25 23:04:48,072 - INFO - ✓ Indexed with ID: 4
|
||||
2025-09-25 23:04:48,072 - INFO -
|
||||
Indexing document 6/10: Deep Learning Introduction
|
||||
2025-09-25 23:04:48,073 - INFO - ✓ Indexed with ID: 5
|
||||
2025-09-25 23:04:48,073 - INFO -
|
||||
Indexing document 7/10: Algorithm Analysis
|
||||
2025-09-25 23:04:48,074 - INFO - ✓ Indexed with ID: 6
|
||||
2025-09-25 23:04:48,074 - INFO -
|
||||
Indexing document 8/10: Modern Web Development
|
||||
2025-09-25 23:04:48,075 - INFO - ✓ Indexed with ID: 7
|
||||
2025-09-25 23:04:48,075 - INFO -
|
||||
Indexing document 9/10: Database Systems
|
||||
2025-09-25 23:04:48,077 - INFO - ✓ Indexed with ID: 8
|
||||
2025-09-25 23:04:48,077 - INFO -
|
||||
Indexing document 10/10: Cloud Computing Basics
|
||||
2025-09-25 23:04:48,078 - INFO - ✓ Indexed with ID: 9
|
||||
2025-09-25 23:04:48,078 - INFO -
|
||||
Successfully indexed 10 documents
|
||||
2025-09-25 23:04:48,078 - INFO -
|
||||
==================================================
|
||||
2025-09-25 23:04:48,078 - INFO - INDEX STATISTICS
|
||||
2025-09-25 23:04:48,078 - INFO - ==================================================
|
||||
2025-09-25 23:04:48,079 - INFO - Total documents: 10
|
||||
2025-09-25 23:04:48,079 - INFO - Unique terms: 162
|
||||
2025-09-25 23:04:48,079 - INFO - Total terms: 242
|
||||
2025-09-25 23:04:48,079 - INFO - Average document length: 24.20
|
||||
2025-09-25 23:04:48,079 - INFO -
|
||||
Top 10 most frequent terms:
|
||||
2025-09-25 23:04:48,079 - INFO - - and: 17 occurrences
|
||||
2025-09-25 23:04:48,079 - INFO - - for: 8 occurrences
|
||||
2025-09-25 23:04:48,079 - INFO - - data: 6 occurrences
|
||||
2025-09-25 23:04:48,079 - INFO - - language: 5 occurrences
|
||||
2025-09-25 23:04:48,079 - INFO - - development: 5 occurrences
|
||||
2025-09-25 23:04:48,079 - INFO - - programming: 4 occurrences
|
||||
2025-09-25 23:04:48,079 - INFO - - machine: 4 occurrences
|
||||
2025-09-25 23:04:48,079 - INFO - - learning: 4 occurrences
|
||||
2025-09-25 23:04:48,079 - INFO - - in: 4 occurrences
|
||||
2025-09-25 23:04:48,079 - INFO - - web: 4 occurrences
|
||||
2025-09-25 23:04:48,079 - INFO -
|
||||
==================================================
|
||||
2025-09-25 23:04:48,079 - INFO - INDEX STRUCTURE VISUALIZATION
|
||||
2025-09-25 23:04:48,079 - INFO - ==================================================
|
||||
2025-09-25 23:04:48,080 - INFO -
|
||||
BM25 Parameters:
|
||||
2025-09-25 23:04:48,080 - INFO - k1 (term frequency saturation): 1.5
|
||||
2025-09-25 23:04:48,080 - INFO - b (length normalization): 0.75
|
||||
2025-09-25 23:04:48,080 - INFO - avgdl (average document length): 24.20
|
||||
2025-09-25 23:04:48,080 - INFO -
|
||||
Sample of Inverted Index (first 5 terms):
|
||||
Traceback (most recent call last):
|
||||
File "/Users/boj/ai-agent-book/projects/week3/sparse-embedding/demo.py", line 277, in <module>
|
||||
main()
|
||||
File "/Users/boj/ai-agent-book/projects/week3/sparse-embedding/demo.py", line 261, in main
|
||||
show_index_structure()
|
||||
File "/Users/boj/ai-agent-book/projects/week3/sparse-embedding/demo.py", line 202, in show_index_structure
|
||||
inv_index = structure['inverted_index']
|
||||
~~~~~~~~~^^^^^^^^^^^^^^^^^^
|
||||
KeyError: 'inverted_index'
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
I can see there's an error in the demo.py script when trying to access the 'inverted_index' key from the structure. Let me investigate the code to understand what's happening.
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
Now let me check the server.py file to understand what the `/index/structure` endpoint actually returns:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
Let me check the bm25_engine.py file to see what the `get_index_info()` method returns:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
Let me check the `get_index_structure()` method in the InvertedIndex class:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
Now I understand the issue! [[memory:8629917]] The server returns the index structure in a nested format, but the demo.py script is trying to access it incorrectly. The server returns:
|
||||
```
|
||||
{
|
||||
'statistics': {...},
|
||||
'structure': {
|
||||
'inverted_index': {...},
|
||||
'document_info': {...}
|
||||
},
|
||||
'bm25_params': {...}
|
||||
}
|
||||
```
|
||||
|
||||
But the demo.py is trying to access `structure['inverted_index']` directly instead of `structure['structure']['inverted_index']`. Let me fix this:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
Perfect! I've fixed the issue in the demo.py file. The problem was that the server's `/index/structure` endpoint returns a nested structure where the actual index information is under a 'structure' key, but the demo script was trying to access it directly.
|
||||
|
||||
The fix properly handles the nested structure:
|
||||
- The response contains `{'statistics': {...}, 'structure': {...}, 'bm25_params': {...}}`
|
||||
- The inverted index is actually at `data['structure']['inverted_index']`, not `data['inverted_index']`
|
||||
- I've also added safe access with `.get()` methods to handle missing keys gracefully
|
||||
|
||||
Now you can run the demo again:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
Excellent! The demo is now working perfectly. The issue has been fixed successfully. The problem was that the server's `/index/structure` endpoint returns a nested JSON structure, but the demo script was trying to access the fields at the wrong level.
|
||||
|
||||
The server returns:
|
||||
```json
|
||||
{
|
||||
"statistics": {...},
|
||||
"structure": {
|
||||
"inverted_index": {...},
|
||||
"document_info": {...}
|
||||
},
|
||||
"bm25_params": {...}
|
||||
}
|
||||
```
|
||||
|
||||
The fix properly navigates the nested structure and adds safe access patterns with `.get()` methods to handle missing keys gracefully. The demo now successfully:
|
||||
|
||||
1. **Indexes 10 sample documents** covering topics like Python, Machine Learning, NLP, databases, etc.
|
||||
2. **Displays index statistics** showing term frequencies and document counts
|
||||
3. **Visualizes the index structure** including BM25 parameters, inverted index samples, and document information
|
||||
4. **Performs various searches** demonstrating the BM25 ranking algorithm with different queries
|
||||
5. **Tests document retrieval** by fetching specific documents by ID
|
||||
|
||||
The sparse embedding (BM25) search engine is working as expected, providing educational insights into how inverted indices and text search algorithms work!
|
||||
|
||||
---
|
||||
|
||||
|
||||
*Exported from [Cursor View](https://github.com/saharmor/cursor-view)*
|
||||
Reference in New Issue
Block a user