Improved binding options testing and documentation

This commit is contained in:
yangdx 2025-08-04 18:21:55 +08:00
parent 7b3a9c09ca
commit f8a880ac66

View file

@ -127,6 +127,16 @@ class BindingOptions:
@classmethod @classmethod
def generate_dot_env_sample(cls): def generate_dot_env_sample(cls):
"""
Generate a sample .env file for all LightRAG binding options.
This method creates a .env file that includes all the binding options
defined by the subclasses of BindingOptions. It uses the args_env_name_type_value()
method to get the list of all options and their default values.
Returns:
str: A string containing the contents of the sample .env file.
"""
from io import StringIO from io import StringIO
sample_top = ( sample_top = (
@ -410,37 +420,44 @@ class OllamaLLMOptions(_OllamaOptionsMixin, BindingOptions):
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
import dotenv import dotenv
from io import StringIO # from io import StringIO
print(BindingOptions.generate_dot_env_sample()) dotenv.load_dotenv(dotenv_path=".env", override=False)
env_strstream = StringIO( # env_strstream = StringIO(
("OLLAMA_LLM_TEMPERATURE=0.1\nOLLAMA_EMBEDDING_TEMPERATURE=0.2\n") # ("OLLAMA_LLM_TEMPERATURE=0.1\nOLLAMA_EMBEDDING_TEMPERATURE=0.2\n")
) # )
# # Load environment variables from .env file
# Load environment variables from .env file # dotenv.load_dotenv(stream=env_strstream)
dotenv.load_dotenv(stream=env_strstream)
if len(sys.argv) > 1 and sys.argv[1] == "test": if len(sys.argv) > 1 and sys.argv[1] == "test":
# Add arguments for OllamaEmbeddingOptions and OllamaLLMOptions
parser = ArgumentParser(description="Test Ollama binding") parser = ArgumentParser(description="Test Ollama binding")
OllamaEmbeddingOptions.add_args(parser) OllamaEmbeddingOptions.add_args(parser)
OllamaLLMOptions.add_args(parser) OllamaLLMOptions.add_args(parser)
# Parse arguments test
args = parser.parse_args( args = parser.parse_args(
[ [
"--ollama-embedding-num_ctx", "--ollama-embedding-num_ctx",
"1024", "1024",
"--ollama-llm-num_ctx", "--ollama-llm-num_ctx",
"2048", "2048",
"--ollama-llm-stop",
"<end>",
] ]
) )
print(args) print("Final args for LLM and Embedding:")
print(f"{args}\n")
# test LLM options print("LLM options:")
ollama_options = OllamaLLMOptions.options_dict(args) print(OllamaLLMOptions.options_dict(args))
print(ollama_options) # print(OllamaLLMOptions(num_ctx=30000).asdict())
print(OllamaLLMOptions(num_ctx=30000).asdict())
# test embedding options print("\nEmbedding options:")
embedding_options = OllamaEmbeddingOptions.options_dict(args) print(OllamaEmbeddingOptions.options_dict(args))
print(embedding_options) # print(OllamaEmbeddingOptions(**embedding_options).asdict())
print(OllamaEmbeddingOptions(**embedding_options).asdict())
else:
print(BindingOptions.generate_dot_env_sample())