MLflow AI Gateway(MLflow AI 网关)
MLflow AI Gateway服务是一个强大的工具,旨在简化组织内各种大型语言模型(LLM)提供商(如OpenAI和Anthropic)的使用和管理。它提供了一个高级接口,通过提供一个统一的端点来处理特定的LLM相关请求,从而简化了与这些服务的交互。有关更多详细信息,请参阅MLflow AI Gateway文档。
安装和设置
使用MLflow AI Gateway依赖项安装mlflow:
pip install 'mlflow[gateway]'
将OpenAI API密钥设置为环境变量:
export OPENAI_API_KEY=...
创建一个配置文件:
routes:
  - name: completions
    route_type: llm/v1/completions
    model:
      provider: openai
      name: text-davinci-003
      config:
        openai_api_key: $OPENAI_API_KEY
  - name: embeddings
    route_type: llm/v1/embeddings
    model:
      provider: openai
      name: text-embedding-ada-002
      config:
        openai_api_key: $OPENAI_API_KEY
启动网关服务器:
mlflow gateway start --config-path /path/to/config.yaml
完成示例
import mlflow
from langchain import LLMChain, PromptTemplate
from langchain.llms import MlflowAIGateway
gateway = MlflowAIGateway(
    gateway_uri="http://127.0.0.1:5000",
    route="completions",
    params={
        "temperature": 0.0,
        "top_p": 0.1,
    },
)
llm_chain = LLMChain(
    llm=gateway,
    prompt=PromptTemplate(
        input_variables=["adjective"],
        template="Tell me a {adjective} joke",
    ),
)
result = llm_chain.run(adjective="funny")
print(result)
with mlflow.start_run():
    model_info = mlflow.langchain.log_model(chain, "model")
model = mlflow.pyfunc.load_model(model_info.model_uri)
print(model.predict([{"adjective": "funny"}]))
嵌入示例
from langchain.embeddings import MlflowAIGatewayEmbeddings
embeddings = MlflowAIGatewayEmbeddings(
    gateway_uri="http://127.0.0.1:5000",
    route="embeddings",
)
print(embeddings.embed_query("hello"))
print(embeddings.embed_documents(["hello"]))
聊天示例
from langchain.chat_models import ChatMLflowAIGateway
from langchain.schema import HumanMessage, SystemMessage
chat = ChatMLflowAIGateway(
    gateway_uri="http://127.0.0.1:5000",
    route="chat",
    params={
        "temperature": 0.1
    }
)
messages = [
    SystemMessage(
        content="You are a helpful assistant that translates English to French."
    ),
    HumanMessage(
        content="Translate this sentence from English to French: I love programming."
    ),
]
print(chat(messages))
Databricks MLflow AI Gateway(Databricks MLflow AI 网关)
Databricks MLflow AI Gateway正在进行私有预览。 请联系Databricks代表以参加预览。
from langchain import LLMChain, PromptTemplate
from langchain.llms import MlflowAIGateway
gateway = MlflowAIGateway(
    gateway_uri="databricks",
    route="completions",
)
llm_chain = LLMChain(
    llm=gateway,
    prompt=PromptTemplate(
        input_variables=["adjective"],
        template="Tell me a {adjective} joke",
    ),
)
result = llm_chain.run(adjective="funny")
print(result)
