22 lines
1.9 KiB
Markdown
22 lines
1.9 KiB
Markdown
# Active Context (As of 2025-04-23 ~08:04 UTC+8)
|
|
|
|
## 1. Current Focus
|
|
Refining the core benchmarking logic and ensuring accurate metric collection, particularly after implementing and debugging streaming support.
|
|
|
|
## 2. Recent Changes
|
|
- **Fixed Stats Recording:** Correctly implemented the recording of `stats.RequestResult` after each request (both streaming and non-streaming) completes within the `runWorker` function in `pkg/concurrency/manager.go`. This involved moving the `RecordResult` call inside the appropriate conditional blocks and using the correct field names (`IsSuccess`, `TimeToFirstToken`).
|
|
- **Corrected Client Initialization:** Updated `cmd/benchmark/main.go` to correctly initialize the `client.FastHTTPClient`. Removed the flawed logic that attempted to switch client types based on the `streaming` flag, recognizing that `FastHTTPClient` internally handles both streaming (using `net/http`) and non-streaming (using `fasthttp`). Ensured the correct request timeout value is passed during initialization.
|
|
- **Lint Fixes:** Addressed several lint warnings, including unused imports and tautological conditions.
|
|
|
|
## 3. Next Steps & Decisions
|
|
- The core functionality of running concurrent streaming requests and recording basic results (Success, Latency, TTFT) is working.
|
|
- The immediate next step is to choose which refinement to tackle next from the following options:
|
|
1. Add detailed error recording to `RequestResult`.
|
|
2. Add token statistics (e.g., average tokens/request, total tokens) to the final report.
|
|
3. Improve/clarify TTFT calculation for non-streaming requests.
|
|
4. Refactor `runWorker` in `pkg/concurrency/manager.go` for better readability.
|
|
|
|
## 4. Active Considerations
|
|
- Ensuring the `net/http` client used internally for streaming has appropriate timeout settings (currently hardcoded in `Stream` method).
|
|
- Planning the structure and implementation of the final report generation (console and potentially HTML).
|