langchain.llms.openllm.OpenLLM¶
- class langchain.llms.openllm.OpenLLM(model_name: Optional[str] = None, *, model_id: Optional[str] = None, server_url: Optional[str] = None, server_type: Literal['grpc', 'http'] = 'http', embedded: bool = True, cache: Optional[bool] = None, verbose: bool = None, callbacks: Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]] = None, callback_manager: Optional[BaseCallbackManager] = None, tags: Optional[List[str]] = None, metadata: Optional[Dict[str, Any]] = None, llm_kwargs: Dict[str, Any])[source]¶
Bases:
LLMOpenLLM, supporting both in-process model instance and remote OpenLLM servers.
To use, you should have the openllm library installed:
pip install openllm
Learn more at: https://github.com/bentoml/openllm
- Example running an LLM model locally managed by OpenLLM:
from langchain.llms import OpenLLM llm = OpenLLM( model_name='flan-t5', model_id='google/flan-t5-large', ) llm("What is the difference between a duck and a goose?")
For all available supported models, you can run âopenllm modelsâ.
- If you have a OpenLLM server running, you can also use it remotely:
from langchain.llms import OpenLLM llm = OpenLLM(server_url='http://localhost:3000') llm("What is the difference between a duck and a goose?")
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- param cache: Optional[bool] = None¶
- param callback_manager: Optional[BaseCallbackManager] = None¶
- param callbacks: Callbacks = None¶
- param embedded: bool = True¶
Initialize this LLM instance in current process by default. Should only set to False when using in conjunction with BentoML Service.
- param llm_kwargs: Dict[str, Any] [Required]¶
Key word arguments to be passed to openllm.LLM
- param metadata: Optional[Dict[str, Any]] = None¶
Metadata to add to the run trace.
- param model_id: Optional[str] = None¶
Model Id to use. If not provided, will use the default model for the model name. See âopenllm modelsâ for all available model variants.
- param model_name: Optional[str] = None¶
Model name to use. See âopenllm modelsâ for all available models.
- param server_type: ServerType = 'http'¶
Optional server type. Either âhttpâ or âgrpcâ.
- param server_url: Optional[str] = None¶
Optional server URL that currently runs a LLMServer with âopenllm startâ.
- param tags: Optional[List[str]] = None¶
Tags to add to the run trace.
- param verbose: bool [Optional]¶
Whether to print out response text.
- __call__(prompt: str, stop: Optional[List[str]] = None, callbacks: Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]] = None, *, tags: Optional[List[str]] = None, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) str¶
Check Cache and run the LLM on the given prompt and input.
- async abatch(inputs: List[Union[PromptValue, str, List[BaseMessage]]], config: Optional[Union[RunnableConfig, List[RunnableConfig]]] = None, max_concurrency: Optional[int] = None, **kwargs: Any) List[str]¶
- async agenerate(prompts: List[str], stop: Optional[List[str]] = None, callbacks: Union[List[BaseCallbackHandler], BaseCallbackManager, None, List[Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]]]] = None, *, tags: Optional[Union[List[str], List[List[str]]]] = None, metadata: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None, **kwargs: Any) LLMResult¶
Run the LLM on the given prompt and input.
- async agenerate_prompt(prompts: List[PromptValue], stop: Optional[List[str]] = None, callbacks: Union[List[BaseCallbackHandler], BaseCallbackManager, None, List[Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]]]] = None, **kwargs: Any) LLMResult¶
Asynchronously pass a sequence of prompts and return model generations.
This method should make use of batched calls for models that expose a batched API.
- Use this method when you want to:
take advantage of batched calls,
need more output from the model than just the top generated value,
- are building chains that are agnostic to the underlying language model
type (e.g., pure text completion models vs chat models).
- Parameters
prompts â List of PromptValues. A PromptValue is an object that can be converted to match the format of any language model (string for pure text generation models and BaseMessages for chat models).
stop â Stop words to use when generating. Model output is cut off at the first occurrence of any of these substrings.
callbacks â Callbacks to pass through. Used for executing additional functionality, such as logging or streaming, throughout generation.
**kwargs â Arbitrary additional keyword arguments. These are usually passed to the model provider API call.
- Returns
- An LLMResult, which contains a list of candidate Generations for each input
prompt and additional model provider-specific output.
- async ainvoke(input: Union[PromptValue, str, List[BaseMessage]], config: Optional[RunnableConfig] = None, *, stop: Optional[List[str]] = None, **kwargs: Any) str¶
- async apredict(text: str, *, stop: Optional[Sequence[str]] = None, **kwargs: Any) str¶
Asynchronously pass a string to the model and return a string prediction.
- Use this method when calling pure text generation models and only the top
candidate generation is needed.
- Parameters
text â String input to pass to the model.
stop â Stop words to use when generating. Model output is cut off at the first occurrence of any of these substrings.
**kwargs â Arbitrary additional keyword arguments. These are usually passed to the model provider API call.
- Returns
Top model prediction as a string.
- async apredict_messages(messages: List[BaseMessage], *, stop: Optional[Sequence[str]] = None, **kwargs: Any) BaseMessage¶
Asynchronously pass messages to the model and return a message prediction.
- Use this method when calling chat models and only the top
candidate generation is needed.
- Parameters
messages â A sequence of chat messages corresponding to a single model input.
stop â Stop words to use when generating. Model output is cut off at the first occurrence of any of these substrings.
**kwargs â Arbitrary additional keyword arguments. These are usually passed to the model provider API call.
- Returns
Top model prediction as a message.
- async astream(input: Union[PromptValue, str, List[BaseMessage]], config: Optional[RunnableConfig] = None, *, stop: Optional[List[str]] = None, **kwargs: Any) AsyncIterator[str]¶
- batch(inputs: List[Union[PromptValue, str, List[BaseMessage]]], config: Optional[Union[RunnableConfig, List[RunnableConfig]]] = None, max_concurrency: Optional[int] = None, **kwargs: Any) List[str]¶
- dict(**kwargs: Any) Dict¶
Return a dictionary of the LLM.
- generate(prompts: List[str], stop: Optional[List[str]] = None, callbacks: Union[List[BaseCallbackHandler], BaseCallbackManager, None, List[Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]]]] = None, *, tags: Optional[Union[List[str], List[List[str]]]] = None, metadata: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None, **kwargs: Any) LLMResult¶
Run the LLM on the given prompt and input.
- generate_prompt(prompts: List[PromptValue], stop: Optional[List[str]] = None, callbacks: Union[List[BaseCallbackHandler], BaseCallbackManager, None, List[Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]]]] = None, **kwargs: Any) LLMResult¶
Pass a sequence of prompts to the model and return model generations.
This method should make use of batched calls for models that expose a batched API.
- Use this method when you want to:
take advantage of batched calls,
need more output from the model than just the top generated value,
- are building chains that are agnostic to the underlying language model
type (e.g., pure text completion models vs chat models).
- Parameters
prompts â List of PromptValues. A PromptValue is an object that can be converted to match the format of any language model (string for pure text generation models and BaseMessages for chat models).
stop â Stop words to use when generating. Model output is cut off at the first occurrence of any of these substrings.
callbacks â Callbacks to pass through. Used for executing additional functionality, such as logging or streaming, throughout generation.
**kwargs â Arbitrary additional keyword arguments. These are usually passed to the model provider API call.
- Returns
- An LLMResult, which contains a list of candidate Generations for each input
prompt and additional model provider-specific output.
- get_num_tokens(text: str) int¶
Get the number of tokens present in the text.
Useful for checking if an input will fit in a modelâs context window.
- Parameters
text â The string input to tokenize.
- Returns
The integer number of tokens in the text.
- get_num_tokens_from_messages(messages: List[BaseMessage]) int¶
Get the number of tokens in the messages.
Useful for checking if an input will fit in a modelâs context window.
- Parameters
messages â The message inputs to tokenize.
- Returns
The sum of the number of tokens across the messages.
- get_token_ids(text: str) List[int]¶
Return the ordered ids of the tokens in a text.
- Parameters
text â The string input to tokenize.
- Returns
- A list of ids corresponding to the tokens in the text, in order they occur
in the text.
- invoke(input: Union[PromptValue, str, List[BaseMessage]], config: Optional[RunnableConfig] = None, *, stop: Optional[List[str]] = None, **kwargs: Any) str¶
- predict(text: str, *, stop: Optional[Sequence[str]] = None, **kwargs: Any) str¶
Pass a single string input to the model and return a string prediction.
- Use this method when passing in raw text. If you want to pass in specific
types of chat messages, use predict_messages.
- Parameters
text â String input to pass to the model.
stop â Stop words to use when generating. Model output is cut off at the first occurrence of any of these substrings.
**kwargs â Arbitrary additional keyword arguments. These are usually passed to the model provider API call.
- Returns
Top model prediction as a string.
- predict_messages(messages: List[BaseMessage], *, stop: Optional[Sequence[str]] = None, **kwargs: Any) BaseMessage¶
Pass a message sequence to the model and return a message prediction.
- Use this method when passing in chat messages. If you want to pass in raw text,
use predict.
- Parameters
messages â A sequence of chat messages corresponding to a single model input.
stop â Stop words to use when generating. Model output is cut off at the first occurrence of any of these substrings.
**kwargs â Arbitrary additional keyword arguments. These are usually passed to the model provider API call.
- Returns
Top model prediction as a message.
- validator raise_deprecation » all fields¶
Raise deprecation warning if callback_manager is used.
- save(file_path: Union[Path, str]) None¶
Save the LLM.
- Parameters
file_path â Path to file to save the LLM to.
Example: .. code-block:: python
llm.save(file_path=âpath/llm.yamlâ)
- validator set_verbose » verbose¶
If verbose is None, set it.
This allows users to pass in None as verbose to access the global setting.
- stream(input: Union[PromptValue, str, List[BaseMessage]], config: Optional[RunnableConfig] = None, *, stop: Optional[List[str]] = None, **kwargs: Any) Iterator[str]¶
- to_json() Union[SerializedConstructor, SerializedNotImplemented]¶
- to_json_not_implemented() SerializedNotImplemented¶
- property lc_attributes: Dict¶
Return a list of attribute names that should be included in the serialized kwargs. These attributes must be accepted by the constructor.
- property lc_namespace: List[str]¶
Return the namespace of the langchain object. eg. [âlangchainâ, âllmsâ, âopenaiâ]
- property lc_secrets: Dict[str, str]¶
Return a map of constructor argument names to secret ids. eg. {âopenai_api_keyâ: âOPENAI_API_KEYâ}
- property lc_serializable: bool¶
Return whether or not the class is serializable.
- property runner: openllm.LLMRunner¶
Get the underlying openllm.LLMRunner instance for integration with BentoML.
Example: .. code-block:: python
- llm = OpenLLM(
model_name=âflan-t5â, model_id=âgoogle/flan-t5-largeâ, embedded=False,
) tools = load_tools([âserpapiâ, âllm-mathâ], llm=llm) agent = initialize_agent(
tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION
) svc = bentoml.Service(âlangchain-openllmâ, runners=[llm.runner])
@svc.api(input=Text(), output=Text()) def chat(input_text: str):
return agent.run(input_text)