Skip to content

Commit ee1b2db

Browse files
Update to latest fnllm (#1930)
* Update to latest fnllm * Semver + smoke tests * Add --method to smoke tests indexing * format... * Adjust embeddings limiter
1 parent 56a865b commit ee1b2db

File tree

10 files changed

+1114
-1001
lines changed

10 files changed

+1114
-1001
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type": "minor",
3+
"description": "Update fnllm to latest. Update default graphrag configuration"
4+
}

graphrag/config/defaults.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
from dataclasses import dataclass, field
77
from pathlib import Path
8+
from typing import Literal
89

910
from graphrag.config.enums import (
1011
AsyncType,
@@ -275,8 +276,8 @@ class LanguageModelDefaults:
275276
proxy: None = None
276277
audience: None = None
277278
model_supports_json: None = None
278-
tokens_per_minute: int = 50_000
279-
requests_per_minute: int = 1_000
279+
tokens_per_minute: Literal["auto"] = "auto"
280+
requests_per_minute: Literal["auto"] = "auto"
280281
retry_strategy: str = "native"
281282
max_retries: int = 10
282283
max_retry_wait: float = 10.0

graphrag/config/init_content.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434
async_mode: {language_model_defaults.async_mode.value} # or asyncio
3535
retry_strategy: native
3636
max_retries: -1 # set to -1 for dynamic retry logic (most optimal setting based on server response)
37-
tokens_per_minute: 0 # set to 0 to disable rate limiting
38-
requests_per_minute: 0 # set to 0 to disable rate limiting
37+
tokens_per_minute: {language_model_defaults.tokens_per_minute} # set to null to disable rate limiting
38+
requests_per_minute: {language_model_defaults.requests_per_minute} # set to null to disable rate limiting
3939
{defs.DEFAULT_EMBEDDING_MODEL_ID}:
4040
type: {defs.DEFAULT_EMBEDDING_MODEL_TYPE.value} # or azure_openai_embedding
4141
# api_base: https://<instance>.openai.azure.com
@@ -52,8 +52,8 @@
5252
async_mode: {language_model_defaults.async_mode.value} # or asyncio
5353
retry_strategy: native
5454
max_retries: -1 # set to -1 for dynamic retry logic (most optimal setting based on server response)
55-
tokens_per_minute: 0 # set to 0 to disable rate limiting
56-
requests_per_minute: 0 # set to 0 to disable rate limiting
55+
tokens_per_minute: {language_model_defaults.tokens_per_minute} # set to null to disable rate limiting
56+
requests_per_minute: {language_model_defaults.requests_per_minute} # set to null to disable rate limiting
5757
5858
### Input settings ###
5959

graphrag/config/models/language_model_config.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
"""Language model configuration."""
55

6+
from typing import Literal
7+
68
import tiktoken
79
from pydantic import BaseModel, Field, model_validator
810

@@ -192,11 +194,11 @@ def _validate_deployment_name(self) -> None:
192194
description="The request timeout to use.",
193195
default=language_model_defaults.request_timeout,
194196
)
195-
tokens_per_minute: int = Field(
197+
tokens_per_minute: int | Literal["auto"] | None = Field(
196198
description="The number of tokens per minute to use for the LLM service.",
197199
default=language_model_defaults.tokens_per_minute,
198200
)
199-
requests_per_minute: int = Field(
201+
requests_per_minute: int | Literal["auto"] | None = Field(
200202
description="The number of requests per minute to use for the LLM service.",
201203
default=language_model_defaults.requests_per_minute,
202204
)

graphrag/language_model/providers/fnllm/utils.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ def _create_openai_config(config: LanguageModelConfig, azure: bool) -> OpenAICon
8181
encoding=encoding_model,
8282
deployment=config.deployment_name,
8383
chat_parameters=chat_parameters,
84-
sleep_on_rate_limit_recommendation=True,
8584
)
8685
return PublicOpenAIConfig(
8786
api_key=config.api_key,
@@ -98,7 +97,6 @@ def _create_openai_config(config: LanguageModelConfig, azure: bool) -> OpenAICon
9897
model=config.model,
9998
encoding=encoding_model,
10099
chat_parameters=chat_parameters,
101-
sleep_on_rate_limit_recommendation=True,
102100
)
103101

104102

poetry.lock

Lines changed: 1092 additions & 986 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ lancedb = "^0.17.0"
5656
aiofiles = "^24.1.0"
5757

5858
# LLM
59-
fnllm = {extras = ["azure", "openai"], version = "0.2.3"}
59+
fnllm = {extras = ["azure", "openai"], version = "^0.3.0"}
6060
json-repair = "^0.30.3"
6161
openai = "^1.68.0"
6262
nltk = "3.9.1"

tests/fixtures/min-csv/settings.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ models:
2020
api_version: ${GRAPHRAG_API_VERSION}
2121
deployment_name: ${GRAPHRAG_EMBEDDING_DEPLOYMENT_NAME}
2222
model: ${GRAPHRAG_EMBEDDING_MODEL}
23-
tokens_per_minute: ${GRAPHRAG_EMBEDDING_TPM}
24-
requests_per_minute: ${GRAPHRAG_EMBEDDING_RPM}
23+
tokens_per_minute: null
24+
requests_per_minute: null
2525
concurrent_requests: 50
2626
async_mode: threaded
2727

tests/fixtures/text/settings.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ models:
2020
api_version: ${GRAPHRAG_API_VERSION}
2121
deployment_name: ${GRAPHRAG_EMBEDDING_DEPLOYMENT_NAME}
2222
model: ${GRAPHRAG_EMBEDDING_MODEL}
23-
tokens_per_minute: ${GRAPHRAG_EMBEDDING_TPM}
24-
requests_per_minute: ${GRAPHRAG_EMBEDDING_RPM}
23+
tokens_per_minute: null
24+
requests_per_minute: null
2525
concurrent_requests: 50
2626
async_mode: threaded
2727

tests/smoke/test_fixtures.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@ def __run_indexer(
139139
root.resolve().as_posix(),
140140
"--logger",
141141
"print",
142+
"--method",
143+
"standard",
142144
]
143145
command = [arg for arg in command if arg]
144146
log.info("running command ", " ".join(command))

0 commit comments

Comments
 (0)