Closed ziodave closed 7 months ago
Hey @ziodave, nice to see you around here again! Hope you're doing well.
To configure the MistralAI LLM in LlamaIndex to use a custom endpoint after deploying Mistral via Azure AI, you need to modify the initialization of the MistralClient
and MistralAsyncClient
within the __init__
method of the MistralAI
class to accept a custom endpoint parameter and pass it to these clients. Here's how you can do it:
endpoint: Optional[str] = None
to the __init__
method signature.endpoint
parameter when initializing MistralClient
and MistralAsyncClient
, defaulting to DEFAULT_MISTRALAI_ENDPOINT
if None
is provided.Here's the modified part of the __init__
method:
def __init__(
self,
model: str = DEFAULT_MISTRALAI_MODEL,
temperature: float = DEFAULT_TEMPERATURE,
max_tokens: int = DEFAULT_MISTRALAI_MAX_TOKENS,
timeout: int = 120,
max_retries: int = 5,
safe_mode: bool = False,
random_seed: Optional[int] = None,
api_key: Optional[str] = None,
additional_kwargs: Optional[Dict[str, Any]] = None,
callback_manager: Optional[CallbackManager] = None,
system_prompt: Optional[str] = None,
messages_to_prompt: Optional[Callable[[Sequence[ChatMessage]], str]] = None,
completion_to_prompt: Optional[Callable[[str], str]] = None,
pydantic_program_mode: PydanticProgramMode = PydanticProgramMode.DEFAULT,
output_parser: Optional[BaseOutputParser] = None,
endpoint: Optional[str] = None, # New parameter for custom endpoint
) -> None:
# Existing code to import MistralClient and MistralAsyncClient and check for api_key
# Use the custom endpoint if provided, otherwise default to DEFAULT_MISTRALAI_ENDPOINT
endpoint = endpoint or DEFAULT_MISTRALAI_ENDPOINT
self._client = MistralClient(
api_key=api_key,
endpoint=endpoint, # Use the custom or default endpoint
timeout=timeout,
max_retries=max_retries,
)
self._aclient = MistralAsyncClient(
api_key=api_key,
endpoint=endpoint, # Use the custom or default endpoint
timeout=timeout,
max_retries=max_retries,
)
# Rest of the __init__ method...
With this modification, you can now pass a custom endpoint URL to the MistralAI
class upon instantiation, allowing it to communicate with a Mistral deployment on Azure AI or any other platform.
You can find the current structure of the MistralAI
class and the DEFAULT_MISTRALAI_ENDPOINT
in the LlamaIndex codebase at the following links:
Please note that this modification should be done in a fork of the LlamaIndex repository and not directly in the main repository. If you have any further questions, feel free to ask.
For more information, you can refer to the Dosu documentation.
Question Validation
Question
I deployed Mistral via Azure AI, how do I use it in LlamaIndex. I tried using the MistralAI LLM in LlamaIndex but I don't see how to configure the endpoint to a custom endpoint.