LLMs
BaseRagasLLM dataclass
BaseRagasLLM(run_config: RunConfig = RunConfig(), multiple_completion_supported: bool = False, cache: Optional[CacheInterface] = None)
Bases: ABC
get_temperature
is_finished abstractmethod
generate async
generate(prompt: PromptValue, n: int = 1, temperature: Optional[float] = 0.01, stop: Optional[List[str]] = None, callbacks: Callbacks = None) -> LLMResult
使用给定的事件循环生成文本。
源代码位于 src/ragas/llms/base.py
InstructorBaseRagasLLM
Bases: ABC
使用 Instructor 库模式的 LLM 基类。
generate abstractmethod
使用已配置的 LLM 生成响应。
对于异步客户端,此方法将在相应的事件循环中运行异步方法。
源代码位于 src/ragas/llms/base.py
agenerate abstractmethod async
InstructorLLM
InstructorLLM(client: Any, model: str, provider: str, model_args: Optional[InstructorModelArgs] = None, **kwargs)
使用 Instructor 库进行结构化输出的 LLM 包装器。
源代码位于 src/ragas/llms/base.py
generate
使用已配置的 LLM 生成响应。
对于异步客户端,此方法将在相应的事件循环中运行异步方法。
源代码位于 src/ragas/llms/base.py
agenerate async
使用已配置的 LLM 异步生成响应。
源代码位于 src/ragas/llms/base.py
HaystackLLMWrapper
HaystackLLMWrapper(haystack_generator: Any, run_config: Optional[RunConfig] = None, cache: Optional[CacheInterface] = None)
基类:BaseRagasLLM
一个用于在 Ragas 框架内使用 Haystack LLM 生成器的包装类。
该类将 Haystack 的 LLM 组件(例如 OpenAIGenerator, HuggingFaceAPIGenerator 等)集成到 Ragas 中,支持同步和异步文本生成。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
haystack_generator
|
AzureOpenAIGenerator | HuggingFaceAPIGenerator | HuggingFaceLocalGenerator | OpenAIGenerator
|
Haystack 生成器的实例。 |
必需 |
run_config
|
RunConfig
|
用于管理 LLM 执行设置的配置对象,默认为 None。 |
None
|
cache
|
CacheInterface
|
用于存储结果的缓存实例,默认为 None。 |
None
|
源代码位于 src/ragas/llms/haystack_wrapper.py
LiteLLMStructuredLLM
使用 LiteLLM 进行结构化输出的 LLM 包装器。
适用于所有 100 多个 LiteLLM 支持的提供商,包括 Gemini、Ollama、vLLM、Groq 等。
LiteLLM 客户端应在初始化时支持结构化输出。
参数:client:LiteLLM 客户端实例 model:模型名称(例如 "gemini-2.0-flash") provider:提供商名称 **kwargs:其他模型参数(temperature、max_tokens 等)
源代码位于 src/ragas/llms/litellm_llm.py
generate
使用已配置的 LLM 生成响应。
对于异步客户端,此方法将在相应的事件循环中运行异步方法。
参数:prompt:输入提示 response_model:用于结构化输出的 Pydantic 模型
返回:包含生成数据的 response_model 实例
源代码位于 src/ragas/llms/litellm_llm.py
agenerate async
使用已配置的 LLM 异步生成响应。
参数:prompt:输入提示 response_model:用于结构化输出的 Pydantic 模型
返回:包含生成数据的 response_model 实例
源代码位于 src/ragas/llms/litellm_llm.py
OCIGenAIWrapper
OCIGenAIWrapper(model_id: str, compartment_id: str, config: Optional[Dict[str, Any]] = None, endpoint_id: Optional[str] = None, run_config: Optional[RunConfig] = None, cache: Optional[Any] = None, default_system_prompt: Optional[str] = None, client: Optional[Any] = None)
基类:BaseRagasLLM
用于 Ragas 的 OCI Gen AI LLM 包装器。
此包装器提供了与 Oracle Cloud Infrastructure 生成式 AI 服务的直接集成,无需 LangChain 或 LlamaIndex。
参数: model_id:用于生成的 OCI 模型 ID compartment_id:OCI 隔间 ID config:OCI 配置字典(可选,若未提供则使用默认配置) endpoint_id:模型的可选端点 ID run_config:Ragas 运行配置 cache:可选的缓存后端
源代码位于 src/ragas/llms/oci_genai_wrapper.py
generate_text
generate_text(prompt: PromptValue, n: int = 1, temperature: Optional[float] = 0.01, stop: Optional[List[str]] = None, callbacks: Optional[Any] = None) -> LLMResult
使用 OCI Gen AI 生成文本。
源代码位于 src/ragas/llms/oci_genai_wrapper.py
agenerate_text async
agenerate_text(prompt: PromptValue, n: int = 1, temperature: Optional[float] = 0.01, stop: Optional[List[str]] = None, callbacks: Optional[Any] = None) -> LLMResult
使用 OCI Gen AI 异步生成文本。
源代码位于 src/ragas/llms/oci_genai_wrapper.py
is_finished
检查 LLM 响应是否已完成。
源代码位于 src/ragas/llms/oci_genai_wrapper.py
llm_factory
llm_factory(model: str, provider: str = 'openai', client: Optional[Any] = None, adapter: str = 'auto', **kwargs: Any) -> InstructorBaseRagasLLM
创建一个用于结构化输出生成的 LLM 实例,并自动选择适配器。
支持多个 LLM 提供商和结构化输出后端,并为同步和异步操作提供统一接口。返回的实例具有 .generate() 和 .agenerate() 方法,这些方法接受 Pydantic 模型以进行结构化输出。
自动检测最适合您提供商的适配器: - Google Gemini → 使用 LiteLLM 适配器 - 其他提供商 → 使用 Instructor 适配器(默认) - 可通过 adapter 参数进行显式控制
参数: model:模型名称(例如 "gpt-4o"、"claude-3-sonnet"、"gemini-2.0-flash")。 provider:LLM 提供商(默认为 "openai")。例如:openai、anthropic、google、groq、mistral 等。 client:预初始化的客户端实例(必需)。对于 OpenAI,可以是 OpenAI(...) 或 AsyncOpenAI(...)。 adapter:要使用的结构化输出适配器(默认为 "auto")。 - "auto":根据提供商/客户端自动检测(推荐) - "instructor":使用 Instructor 库 - "litellm":使用 LiteLLM(支持 100+ 提供商) **kwargs:其他模型参数(temperature、max_tokens、top_p 等)。
返回: InstructorBaseRagasLLM:带有 generate() 和 agenerate() 方法的实例。
引发: ValueError:如果缺少客户端、提供商不受支持、模型无效或适配器初始化失败。
示例: from openai import OpenAI
# OpenAI (auto-detects instructor adapter)
client = OpenAI(api_key="...")
llm = llm_factory("gpt-4o-mini", client=client)
response = llm.generate(prompt, ResponseModel)
# Anthropic
from anthropic import Anthropic
client = Anthropic(api_key="...")
llm = llm_factory("claude-3-sonnet", provider="anthropic", client=client)
# Google Gemini (auto-detects litellm adapter)
from litellm import OpenAI as LiteLLMClient
client = LiteLLMClient(api_key="...", model="gemini-2.0-flash")
llm = llm_factory("gemini-2.0-flash", client=client)
# Explicit adapter selection
llm = llm_factory("gemini-2.0-flash", client=client, adapter="litellm")
# Async
from openai import AsyncOpenAI
client = AsyncOpenAI(api_key="...")
llm = llm_factory("gpt-4o-mini", client=client)
response = await llm.agenerate(prompt, ResponseModel)
源代码位于 src/ragas/llms/base.py
499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 | |
oci_genai_factory
oci_genai_factory(model_id: str, compartment_id: str, config: Optional[Dict[str, Any]] = None, endpoint_id: Optional[str] = None, run_config: Optional[RunConfig] = None, cache: Optional[Any] = None, default_system_prompt: Optional[str] = None, client: Optional[Any] = None) -> OCIGenAIWrapper
用于创建 OCI Gen AI LLM 实例的工厂函数。
参数: model_id:用于生成的 OCI 模型 ID compartment_id:OCI 隔间 ID config:OCI 配置字典(可选) endpoint_id:模型的可选端点 ID run_config:Ragas 运行配置 **kwargs:传递给 OCIGenAIWrapper 的其他参数
返回: OCIGenAIWrapper:OCI Gen AI LLM 包装器的实例
示例: # 使用默认配置的基本用法 llm = oci_genai_factory( model_id="cohere.command", compartment_id="ocid1.compartment.oc1..example" )
# With custom config
llm = oci_genai_factory(
model_id="cohere.command",
compartment_id="ocid1.compartment.oc1..example",
config={"user": "user_ocid", "key_file": "~/.oci/private_key.pem"}
)