Conversation
|
Warning Rate limit exceeded@KaQuMiQ has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 17 minutes and 43 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (27)
WalkthroughAdds a new .pymarkdown.json configuring Markdown lint plugins (md013, md033). Updates Makefile to add docs-format (mdformat), switch docs-lint to use uv-run pymarkdown, remove Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Mixed but largely homogeneous documentation reflows across many files, plus several tooling/config changes (Makefile, CI, new lint config) and dependency/version bumps. Review should focus on docs build/lint workflow changes and dependency updates. Possibly related PRs
Pre-merge checks and finishing touches and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (4)
docs/guides/ComprehensiveEvaluation.md (1)
5-101: Fix the unbalanced code fences.The top evaluator section opens with
python but the nested ```python fences never close before you terminate the outer block at Line 101. Everything that follows stays inside an unterminated fence, which is why markdown_lint fails (`code fence not closed`) and why later sections render incorrectly. Close each inner ``` block before ending the outerblock, or drop the outer fence altogether. Then rerundocs-lintto confirm the pipeline passes.docs/guides/AdvancedState.md (1)
17-301: Add languages to new fenced blocks to satisfy pymarkdown.The new fenced blocks (e.g., Line 17 and similar outputs) omit a language tag, so the updated docs lint (MD040) fails. Please mark these as
text(or an appropriate language) across the file.-``` +```text name: converted@@
-+text
initial identifier: pre
value: 42
updated identifier: post
value: 42
final identifier: pre@@ -``` +```text name: converted@@
-+text
{
"type": "object",
"properties": {
@@@@ -``` +```text { "field": "string" }@@
-+text
JSON schema:
{
@@@@ -``` +```text default: 42 field_default: 21@@
--text +textverifier gets pre-validated value, it already have required type
def verifier(value: int) -> None:
@@
print(CustomizedSpecificationModel.json_schema(indent=2))
-+
@@
-+text
{
"type": "object",
"properties": {
@@@@ -``` +```text (42, 21)@@
-+text
nested.values@@ -``` +```text True@@
-+text
lhs: nested.values[0]
operator: equal
rhs: 42
@@
True
-+</blockquote></details> <details> <summary>docs/cookbooks/BasicRAG.md (1)</summary><blockquote> `10-135`: **Fix malformed code fences in Basic RAG guide** Lines 10-135: The new quadruple fences wrap ` ```python` blocks, so the guide now renders the literal backticks instead of highlighted code, and the outer fence never closes cleanly (pymarkdown flags MD040). Please flatten these into standalone fences and label the output blocks. ```diff -````python -from draive import load_env - -```python -from draive import DataModel, ctx, split_text +```python +from draive import load_env +from draive import DataModel, ctx, split_text from draive.openai import OpenAI @@ print(f"Prepared {len(document_chunks)} chunks:\n---") print("\n---\n".join(chunk.content for chunk in document_chunks)) -```` - -``` +``` + +```text Prepared 11 chunks: --- @@ -````python -from collections.abc import Sequence - -from draive import VectorIndex -from draive.helpers import VolatileVectorIndex -from draive.openai import OpenAIEmbeddingConfig, OpenAI +```python +from collections.abc import Sequence + +from draive import VectorIndex +from draive.helpers import VolatileVectorIndex +from draive.openai import OpenAIEmbeddingConfig, OpenAI @@ -```python -from collections.abc import Sequence - -from draive import Toolbox, TextGeneration, tool, VectorIndex -from draive.openai import OpenAIResponsesConfig, OpenAI, OpenAIEmbeddingConfig +``` + +```python +from collections.abc import Sequence + +from draive import Toolbox, TextGeneration, tool, VectorIndex +from draive.openai import OpenAIResponsesConfig, OpenAI, OpenAIEmbeddingConfig @@ -```` - -``` +``` + +```text According to available sources, John Doe lives in Vancouver. -``` +```docs/guides/BasicToolsUse.md (1)
3-19: Fix malformed fences around the first tool example.Opening with ````python while inserting a nested
python leaves the inner fence as literal text and collapses both snippets into one block. Switch back to two separatepython fences (also adjust the later occurrence aroundcustomized_more) so the code renders correctly.-````python +```python from draive import tool @tool # simply annotate function as a tool, tools can have arguments using basic types async def current_time(location: str) -> str: # return result of tool execution, we are using fake time here - -```python +``` + +```python from draive import ctx async with ctx.scope("basics"): # we can still use it as a regular function # but it has to be executed within context scope print(await current_time(location="London")) # await current_time(location="London") # error! out of context -```` +```
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
uv.lockis excluded by!**/*.lock
📒 Files selected for processing (26)
.pymarkdown.json(1 hunks)AGENTS.md(2 hunks)Makefile(3 hunks)README.md(5 hunks)docs/cookbooks/BasicDataExtraction.md(1 hunks)docs/cookbooks/BasicMCP.md(2 hunks)docs/cookbooks/BasicRAG.md(3 hunks)docs/getting-started/first-steps.md(3 hunks)docs/getting-started/index.md(2 hunks)docs/getting-started/installation.md(1 hunks)docs/getting-started/quickstart.md(1 hunks)docs/guides/AdvancedState.md(10 hunks)docs/guides/BasicConversation.md(4 hunks)docs/guides/BasicEvaluation.md(6 hunks)docs/guides/BasicModelGeneration.md(5 hunks)docs/guides/BasicStageUsage.md(13 hunks)docs/guides/BasicToolsUse.md(5 hunks)docs/guides/BasicUsage.md(5 hunks)docs/guides/Basics.md(10 hunks)docs/guides/ComprehensiveEvaluation.md(4 hunks)docs/guides/EvaluatorCatalog.md(26 hunks)docs/guides/MultimodalContent.md(7 hunks)docs/guides/Postgres.md(5 hunks)docs/index.md(6 hunks)llms.txt(1 hunks)pyproject.toml(3 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
docs/**/*.md
📄 CodeRabbit inference engine (AGENTS.md)
When behavior/API changes, update relevant documentation pages under
docs/and examples as needed
Files:
docs/getting-started/index.mddocs/guides/BasicConversation.mddocs/getting-started/installation.mddocs/getting-started/quickstart.mddocs/guides/MultimodalContent.mddocs/guides/Postgres.mddocs/guides/EvaluatorCatalog.mddocs/guides/BasicEvaluation.mddocs/guides/BasicToolsUse.mddocs/cookbooks/BasicDataExtraction.mddocs/guides/BasicModelGeneration.mddocs/index.mddocs/getting-started/first-steps.mddocs/cookbooks/BasicRAG.mddocs/guides/BasicStageUsage.mddocs/guides/Basics.mddocs/guides/AdvancedState.mddocs/cookbooks/BasicMCP.mddocs/guides/ComprehensiveEvaluation.mddocs/guides/BasicUsage.md
🧠 Learnings (6)
📚 Learning: 2025-06-16T10:28:07.434Z
Learnt from: KaQuMiQ
PR: miquido/draive#338
File: src/draive/lmm/__init__.py:1-2
Timestamp: 2025-06-16T10:28:07.434Z
Learning: The draive project requires Python 3.12+ as specified in pyproject.toml with "requires-python = ">=3.12"" and uses Python 3.12+ specific features like PEP 695 type aliases and generic syntax extensively throughout the codebase.
Applied to files:
docs/getting-started/installation.mdpyproject.toml
📚 Learning: 2025-10-01T13:12:39.702Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.702Z
Learning: Applies to src/draive/**/*.py : Construct multimodal content with `MultimodalContent.of(...)`; use `ResourceContent/Reference` for blobs; wrap custom data in `ArtifactContent` (use hidden when needed)
Applied to files:
docs/guides/MultimodalContent.md
📚 Learning: 2025-10-01T13:12:39.702Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.702Z
Learning: Applies to src/draive/**/*.py : Use `final` where applicable; avoid complex inheritance, prefer composition
Applied to files:
AGENTS.md
📚 Learning: 2025-10-01T13:12:39.701Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.701Z
Learning: Applies to src/draive/**/*.py : No untyped public APIs; maintain strict typing
Applied to files:
AGENTS.md
📚 Learning: 2025-10-01T13:12:39.701Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.701Z
Learning: Preview docs locally with `make docs-server` and build with `make docs`
Applied to files:
AGENTS.mdMakefile
📚 Learning: 2025-10-01T13:12:39.701Z
Learnt from: CR
PR: miquido/draive#0
File: AGENTS.md:0-0
Timestamp: 2025-10-01T13:12:39.701Z
Learning: Applies to src/draive/**/*.py : Use `ctx.scope(...)` to bind scoped Disposables and active State; avoid global state
Applied to files:
docs/getting-started/first-steps.mddocs/guides/Basics.md
🪛 checkmake (0.2.2)
Makefile
[warning] 16-16: Missing required phony target "all"
(minphony)
[warning] 16-16: Missing required phony target "clean"
(minphony)
🪛 GitHub Actions: CI
docs/guides/ComprehensiveEvaluation.md
[error] 285-285: markdown_lint failed: code fence not closed. Command: 'uv run python tools/markdown_lint.py docs' exited with code 1.
🪛 markdownlint-cli2 (0.18.1)
docs/guides/BasicEvaluation.md
89-89: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
96-96: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
102-102: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
docs/cookbooks/BasicRAG.md
49-49: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
133-133: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
docs/guides/AdvancedState.md
17-17: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
41-41: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
62-62: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
73-73: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
94-94: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
111-111: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
147-147: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
190-190: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
241-241: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
252-252: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
272-272: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
294-294: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
docs/guides/BasicUsage.md
52-52: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
107-107: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
148-148: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🔇 Additional comments (1)
llms.txt (1)
110-125: Verify the public import path fortool.Other docs (e.g., BasicToolsUse) still import
toolviafrom draive import tool. If the public surface hasn’t moved todraive.models.tools, this snippet will break. Please confirm and align the import with the supported API.
247e498 to
5ece0f5
Compare
There was a problem hiding this comment.
Actionable comments posted: 11
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (4)
docs/guides/AdvancedState.md (1)
17-274: Add languages to output fencesThe new pymarkdown (MD040) gate fails because several result fences (e.g., Lines 17, 41, 62, 73, 94, 111, 147, 191, 241, 252, 272, 295) lack a language tag. Please mark these as plain text (for example,
```text) so docs-lint passes.-``` +```text name: converted-
+text
initial identifier: pre
value: 42
updated identifier: post
value: 42
final identifier: pre-``` +```text name: converted-
+json
{
"type": "object",
"properties": {
"field": {
"type": "string"
}
},
"required": [
"field"
]
}-``` +```json { "field": "string" }-
+text
JSON schema:
{
"type": "object",
"properties": {
"described": {
"type": "integer",
"description": "Field description"
},
"field_alias": {
"type": "string"
}
},
"required": [
"described",
"field_alias"
]
}
Simplified schema:
{
"described": "integer(Field description)",
"field_alias": "string"
}-``` +```text default: 42 field_default: 21-
+json
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"description": "Fully custom"
}
},
"required": [
"value"
]
}-``` +```text (42, 21)-
+text
nested.values-``` +```text True-
+text
lhs: nested.values[0]
operator: equal
rhs: 42True
docs/guides/BasicConversation.md (1)
68-75: Tag the example output fenceDocs lint now requires a language on fenced blocks. The conversation output (Lines 68-75) is missing one—mark it as
```textsomake docs-lintpasses.-``` +```text identifier: dd2a86730a3441939359e960f0cc2da3 role: model created: 2025-03-07 12:40:30.130777+00:00 content: parts: - text: The current UTC time and date is Friday, 7th March 2025, 12:40:29.</blockquote></details> <details> <summary>docs/guides/BasicToolsUse.md (1)</summary><blockquote> `21-335`: **Add languages to result/output fences** Several fences (e.g., Lines 21-23, 85-87, 160-335) are unlabelled, which violates MD040 under the new pymarkdown gate. Please annotate them (e.g., ` ```text`, ` ```json`) so docs lint succeeds. ```diff -``` +```text Time in London is 9:53:22-
+json
{'name': 'fun_fact', 'description': 'Find a fun fact in a given topic', 'parameters': {'type': 'object', 'properties': {'topic': {'type': 'string', 'description': 'Topic of a fact to find'}}, 'required': []}}-``` +```text 07/Mar/2025:13:40:43 +0000 [DEBUG] [basics] [8ffed39264134e679e87ae5a34311ad8] [basics] [24eee7a7577b4f25b7c59a43c20a3423] Entering context... Result: One funny thing about LLMs (Large Language Models) is that they can generate text that sounds like it was written by a human, but sometimes they mix up facts in the most amusing ways! For example, they might describe a cat as "a small, furry creature that loves to swim" – which is definitely not the case for most cats! They have a knack for making up their own versions of reality, which can lead to some hilarious misunderstandings! 07/Mar/2025:13:40:47 +0000 [DEBUG] [basics] [8ffed39264134e679e87ae5a34311ad8] [basics] [24eee7a7577b4f25b7c59a43c20a3423] Metrics summary: ⎡ @basics [24eee7a7577b4f25b7c59a43c20a3423](3.82s): | | ⎡ @generate_text [484bad5216bf4a2db28dad924f5d0de9](3.82s): | | | | ⎡ @model.completion [aea1a47734504cc38267ea31a42aa31e](1.04s): | | | ⎡ •ArgumentsTrace: | | | | ├ kwargs: | | | | | [instruction]: "You are a funny assistant" | | | | | [context]: | | | | | | [0] content: | | | | | | | parts: | | | | | | | - text: What is the funny thing about LLMs? | | | | | | | meta: None | | | | | | | meta: None | | | | | | [1] completion: None | | | | | | | requests: | | | | | | | - identifier: call_QpvQQ89llJxvuuW7rmMY9CqA | | | | | | | tool: fun_fact | | | | | | | arguments: | | | | | | | topic: LLMs | | | | | | [2] responses: | | | | | | | - identifier: call_QpvQQ89llJxvuuW7rmMY9CqA | | | | | | | tool: fun_fact | | | | | | | content: | | | | | | | parts: | | | | | | | - text: LLMs is very funny on its own! | | | | | | | meta: None | | | | | | | direct: False | | | | | | | error: False | | | | | [tool_selection]: | | | | | | [name]: "fun_fact" | | | | | | [description]: "Find a fun fact in a given topic" | | | | | | [parameters]: | | | | | | | [type]: "object" | | | | | | | [properties]: | | | | | | | | [topic]: | | | | | | | | | [type]: "string" | | | | | | | | | [description]: "Topic of a fact to find" | | | | | [tools]: | | | | | | [0] | | | | | | | [name]: "current_time" | | | | | | | [description]: None | | | | | | | [parameters]: | | | | | | | | [type]: "object" | | | | | | | | [properties]: | | | | | | | | | [location]: | | | | | | | | | | [type]: "string" | | | | | | | | [required]: | | | | | | | | | [0] "location" | | | | | | [1] | | | | | | | [name]: "fun_fact" | | | | | | | [description]: "Find a fun fact in a given topic" | | | | | | | [parameters]: | | | | | | | | [type]: "object" | | | | | | | | [properties]: | | | | | | | | | [topic]: | | | | | | | | | | [type]: "string" | | | | | | | | | | [description]: "Topic of a fact to find" | | | | | [output]: "text" | | | ⌊ | | | ⎡ •OpenAIResponsesConfig: | | | | ├ model: "gpt-4o-mini" | | | | ├ temperature: 1.0 | | | ⌊ | | | ⎡ •TokenUsage: | | | | ├ usage: | | | | | [gpt-4o-mini-2024-07-18]: | | | | | ├ input_tokens: 93 | | | | | ├ cached_tokens: 0 | | | | | ├ output_tokens: 7 | | | ⌊ | | | ⎡ •OpenAISystemFingerprint: | | | | ├ system_fingerprint: "fp_06737a9306" | | | ⌊ | | | ⎡ •ResultTrace: | | | | ├ result: completion: None | | | | | requests: | | | | | - identifier: call_QpvQQ89llJxvuuW7rmMY9CqA | | | | | tool: fun_fact | | | | | arguments: | | | | | topic: LLMs | | | ⌊ | | ⌊ | ... -``` +```text 07/Mar/2025:13:40:47 +0000 [DEBUG] [basics] [8ffed39264134e679e87ae5a34311ad8] [basics] [24eee7a7577b4f25b7c59a43c20a3423] ...exiting context after 3.82s</blockquote></details> <details> <summary>docs/cookbooks/BasicMCP.md (1)</summary><blockquote> `9-70`: **Label the sample output fence** The directory listing/output block (Lines 63-70) lacks a language designation, tripping MD040. Tag it as ` ```text` so the updated docs lint passes. ```diff -``` +```text The `checkmeout` directory contains the following files: - file1 - file10 - file2 - file3</blockquote></details> </blockquote></details>📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
uv.lockis excluded by!**/*.lock📒 Files selected for processing (27)
.github/workflows/ci.yml(1 hunks).pymarkdown.json(1 hunks)AGENTS.md(2 hunks)Makefile(3 hunks)README.md(5 hunks)docs/cookbooks/BasicDataExtraction.md(1 hunks)docs/cookbooks/BasicMCP.md(2 hunks)docs/cookbooks/BasicRAG.md(3 hunks)docs/getting-started/first-steps.md(3 hunks)docs/getting-started/index.md(2 hunks)docs/getting-started/installation.md(1 hunks)docs/getting-started/quickstart.md(1 hunks)docs/guides/AdvancedState.md(10 hunks)docs/guides/BasicConversation.md(4 hunks)docs/guides/BasicEvaluation.md(6 hunks)docs/guides/BasicModelGeneration.md(5 hunks)docs/guides/BasicStageUsage.md(13 hunks)docs/guides/BasicToolsUse.md(5 hunks)docs/guides/BasicUsage.md(5 hunks)docs/guides/Basics.md(10 hunks)docs/guides/ComprehensiveEvaluation.md(6 hunks)docs/guides/EvaluatorCatalog.md(26 hunks)docs/guides/MultimodalContent.md(7 hunks)docs/guides/Postgres.md(5 hunks)docs/index.md(6 hunks)llms.txt(1 hunks)pyproject.toml(3 hunks)🧰 Additional context used
📓 Path-based instructions (1)
docs/**/*.md
📄 CodeRabbit inference engine (AGENTS.md)
When behavior/API changes, update relevant documentation pages under
docs/and examples as neededFiles:
docs/guides/AdvancedState.mddocs/getting-started/first-steps.mddocs/index.mddocs/guides/Postgres.mddocs/getting-started/quickstart.mddocs/guides/EvaluatorCatalog.mddocs/guides/BasicEvaluation.mddocs/guides/BasicToolsUse.mddocs/guides/BasicStageUsage.mddocs/guides/BasicUsage.mddocs/guides/MultimodalContent.mddocs/cookbooks/BasicDataExtraction.mddocs/cookbooks/BasicMCP.mddocs/cookbooks/BasicRAG.mddocs/guides/BasicModelGeneration.mddocs/getting-started/installation.mddocs/getting-started/index.mddocs/guides/Basics.mddocs/guides/BasicConversation.mddocs/guides/ComprehensiveEvaluation.md🧠 Learnings (7)
📚 Learning: 2025-10-01T13:12:39.701Z
Learnt from: CR PR: miquido/draive#0 File: AGENTS.md:0-0 Timestamp: 2025-10-01T13:12:39.701Z Learning: Applies to src/draive/**/*.py : Use `ctx.scope(...)` to bind scoped Disposables and active State; avoid global stateApplied to files:
docs/getting-started/first-steps.mddocs/guides/Basics.md📚 Learning: 2025-10-01T13:12:39.701Z
Learnt from: CR PR: miquido/draive#0 File: AGENTS.md:0-0 Timestamp: 2025-10-01T13:12:39.701Z Learning: Run linters/type-checkers Ruff, Bandit, Pyright (strict) via `make lint`Applied to files:
.github/workflows/ci.yml📚 Learning: 2025-10-01T13:12:39.702Z
Learnt from: CR PR: miquido/draive#0 File: AGENTS.md:0-0 Timestamp: 2025-10-01T13:12:39.702Z Learning: Applies to src/draive/**/*.py : Construct multimodal content with `MultimodalContent.of(...)`; use `ResourceContent/Reference` for blobs; wrap custom data in `ArtifactContent` (use hidden when needed)Applied to files:
docs/guides/MultimodalContent.md📚 Learning: 2025-10-01T13:12:39.702Z
Learnt from: CR PR: miquido/draive#0 File: AGENTS.md:0-0 Timestamp: 2025-10-01T13:12:39.702Z Learning: Applies to src/draive/**/*.py : Use `final` where applicable; avoid complex inheritance, prefer compositionApplied to files:
AGENTS.md📚 Learning: 2025-10-01T13:12:39.701Z
Learnt from: CR PR: miquido/draive#0 File: AGENTS.md:0-0 Timestamp: 2025-10-01T13:12:39.701Z Learning: Applies to src/draive/**/*.py : No untyped public APIs; maintain strict typingApplied to files:
AGENTS.md📚 Learning: 2025-10-01T13:12:39.701Z
Learnt from: CR PR: miquido/draive#0 File: AGENTS.md:0-0 Timestamp: 2025-10-01T13:12:39.701Z Learning: Preview docs locally with `make docs-server` and build with `make docs`Applied to files:
AGENTS.mdMakefile📚 Learning: 2025-06-16T10:28:07.434Z
Learnt from: KaQuMiQ PR: miquido/draive#338 File: src/draive/lmm/__init__.py:1-2 Timestamp: 2025-06-16T10:28:07.434Z Learning: The draive project requires Python 3.12+ as specified in pyproject.toml with "requires-python = ">=3.12"" and uses Python 3.12+ specific features like PEP 695 type aliases and generic syntax extensively throughout the codebase.Applied to files:
docs/getting-started/installation.mdpyproject.toml🪛 checkmake (0.2.2)
Makefile
[warning] 16-16: Missing required phony target "all"
(minphony)
[warning] 16-16: Missing required phony target "clean"
(minphony)
🪛 markdownlint-cli2 (0.18.1)
docs/guides/AdvancedState.md
133-133: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
docs/guides/BasicToolsUse.md
21-21: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
85-85: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
160-160: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
docs/guides/BasicUsage.md
52-52: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
107-107: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
148-148: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
docs/cookbooks/BasicRAG.md
49-49: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
133-133: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
docs/guides/Basics.md
71-71: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
175-175: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
241-241: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
docs/guides/ComprehensiveEvaluation.md
112-112: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🔇 Additional comments (3)
llms.txt (1)
52-60: Fix the State/ctx import.
Stateandctxlive indraive, nothaiway. The current snippet will crash for readers. Please import them fromdraive:-from haiway import State, ctx +from draive import State, ctx⛔ Skipped due to learnings
Learnt from: CR PR: miquido/draive#0 File: AGENTS.md:0-0 Timestamp: 2025-10-01T13:12:39.701Z Learning: Applies to src/draive/**/*.py : Import Haiway symbols directly: `from haiway import State, ctx`.pymarkdown.json (1)
3-16: Consistent lint/format configuration.Matching md013 limits to the 100‑column mdformat wrap keeps docs-format and docs-lint aligned, avoiding churn.
.github/workflows/ci.yml (1)
35-35: Docs lint step now matches local tooling.Running pymarkdown with the shared config keeps CI enforcement consistent with
make docs-lint.
| ``` | ||
| RESULT GPT 3.5 | temperature 0.4: Violets are blue. | ||
|
|
||
| RESULT GPT 4o | temperature 0.4: Violets are blue. | ||
| RESULT GPT 4o | temperature 0.4: Violets are blue. | ||
|
|
||
| RESULT GPT 3.5 | temperature 0.7: Violets are blue. | ||
| RESULT GPT 3.5 | temperature 0.7: Violets are blue. | ||
| ``` |
There was a problem hiding this comment.
Same fix needed here.
Label this fence (text, log, etc.) or pymarkdown will fail the pipeline.
-```
+```text
RESULT GPT 3.5 | temperature 0.4: Violets are blue.
...
-```
+```🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
107-107: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
In docs/guides/BasicUsage.md around lines 107 to 113, the code fence with GPT
results is unlabeled which breaks the pymarkdown pipeline; add a fence language
identifier (e.g., use ```text or ```log) on the opening fence and ensure a
matching closing ``` is present so the block is properly recognized by the
markdown linter.
| ``` | ||
| 07/Mar/2025:13:40:51 +0000 [DEBUG] [basics] [8d198c3d552b48f1b7473f1e14ba50ed] [basics] [057c9032a45a48f38dcbb7861e4b172e] Entering context... | ||
|
|
||
| 07/Mar/2025:13:40:52 +0000 [DEBUG] [basics] [8d198c3d552b48f1b7473f1e14ba50ed] [basics] [057c9032a45a48f38dcbb7861e4b172e] Metrics summary: | ||
| ⎡ @basics [057c9032a45a48f38dcbb7861e4b172e](1.38s): | ||
| | | ||
| | ⎡ @generate_text [872ecd2b612e4fcbb19f4d6aa674e22d](0.63s): | ||
| | | | ||
| | | ⎡ @model.completion [db5e56df44d2478ca1fcac959c29bdd3](0.63s): | ||
| | | | ⎡ •ArgumentsTrace: | ||
| | | | | ├ kwargs: | ||
| | | | | | [instruction]: "Prepare the simplest completion of a given text" | ||
| | | | | | [context]: | ||
| | | | | | | [0] content: | ||
| | | | | | | | parts: | ||
| | | | | | | | - text: Roses are red... | ||
| | | | | | | | meta: None | ||
| | | | | | | | meta: None | ||
| | | | | | [tool_selection]: "auto" | ||
| | | | | | [output]: "text" | ||
| | | | ⌊ | ||
| | | | ⎡ •OpenAIResponsesConfig: | ||
| | | | | ├ model: "gpt-3.5-turbo" | ||
| | | | | ├ temperature: 0.4 | ||
| | | | ⌊ | ||
| | | | ⎡ •TokenUsage: | ||
| | | | | ├ usage: | ||
| | | | | | [gpt-3.5-turbo-0125]: | ||
| | | | | | ├ input_tokens: 24 | ||
| | | | | | ├ cached_tokens: 0 | ||
| | | | | | ├ output_tokens: 7 | ||
| | | | ⌊ | ||
| | | | ⎡ •ResultTrace: | ||
| | | | | ├ result: content: | ||
| | | | | | parts: | ||
| | | | | | - text: Violets are blue. | ||
| | | | | | meta: None | ||
| | | | | | meta: None | ||
| | | | ⌊ | ||
| | | ⌊ | ||
| | ⌊ | ||
| | | ||
| | ⎡ @generate_text [38c8e1bd88a4444681f1bd2e61bce296](0.76s): | ||
| | | | ||
| | | ⎡ @model.completion [f63a2825efa6406f8019635aa9892b2e](0.76s): | ||
| | | | ⎡ •ArgumentsTrace: | ||
| | | | | ├ kwargs: | ||
| | | | | | [instruction]: "Prepare the simplest completion of a given text" | ||
| | | | | | [context]: | ||
| | | | | | | [0] content: | ||
| | | | | | | | parts: | ||
| | | | | | | | - text: Roses are red... | ||
| | | | | | | | meta: None | ||
| | | | | | | | meta: None | ||
| | | | | | [tool_selection]: "auto" | ||
| | | | | | [output]: "text" | ||
| | | | ⌊ | ||
| | | | ⎡ •OpenAIResponsesConfig: | ||
| | | | | ├ model: "gpt-4o" | ||
| | | | | ├ temperature: 0.4 | ||
| | | | ⌊ | ||
| | | | ⎡ •TokenUsage: | ||
| | | | | ├ usage: | ||
| | | | | | [gpt-4o-2024-08-06]: | ||
| | | | | | ├ input_tokens: 24 | ||
| | | | | | ├ cached_tokens: 0 | ||
| | | | | | ├ output_tokens: 7 | ||
| | | | ⌊ | ||
| | | | ⎡ •OpenAISystemFingerprint: | ||
| | | | | ├ system_fingerprint: "fp_eb9dce56a8" | ||
| | | | ⌊ | ||
| | | | ⎡ •ResultTrace: | ||
| | | | | ├ result: content: | ||
| | | | | | parts: | ||
| | | | | | - text: Violets are blue. | ||
| | | | | | meta: None | ||
| | | | | | meta: None | ||
| | | | ⌊ | ||
| | | ⌊ | ||
| | ⌊ | ||
| ⌊ | ||
|
|
||
| 07/Mar/2025:13:40:52 +0000 [DEBUG] [basics] [8d198c3d552b48f1b7473f1e14ba50ed] [basics] [057c9032a45a48f38dcbb7861e4b172e] ...exiting context after 1.38s | ||
| ``` |
There was a problem hiding this comment.
Label the log dump fence.
MD040 requires a language identifier. Use text/log so the new lint step passes.
-```
+```text
07/Mar/2025:13:40:51 +0000 [DEBUG] ...
...
-```
+```🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
148-148: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
In docs/guides/BasicUsage.md around lines 148 to 231, the fenced log block is
missing a language identifier which fails MD040; update the opening fence to
include a language (e.g., ```text or ```log) and ensure the closing fence
remains ``` so the block is properly labeled for the linter. Keep the log
content unchanged and only modify the opening fence to add the identifier.
5ece0f5 to
6db14c0
Compare
6db14c0 to
199f69a
Compare
No description provided.