跳到主要内容
Oracle 云基础设施 (OCI) 生成式 AI 是一项完全托管的服务,提供了一套最先进的、可定制的大型语言模型 (LLM),涵盖了广泛的用例,并通过单个 API 提供。使用 OCI 生成式 AI 服务,您可以访问现成的预训练模型,或根据您自己的数据在专用 AI 集群上创建和托管您自己的微调自定义模型。有关服务和 API 的详细文档可在此处和此处获取。 本笔记本解释了如何将 OCI 的生成式 AI 完整模型与 LangChain 结合使用。

设置

确保已安装 oci sdk 和 langchain-community 包
!pip install -U oci langchain-community

用法

from langchain_community.llms.oci_generative_ai import OCIGenAI

llm = OCIGenAI(
    model_id="cohere.command",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    compartment_id="MY_OCID",
    model_kwargs={"temperature": 0, "max_tokens": 500},
)

response = llm.invoke("Tell me one fact about earth", temperature=0.7)
print(response)

通过提示模板进行链式处理

from langchain_core.prompts import PromptTemplate

llm = OCIGenAI(
    model_id="cohere.command",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    compartment_id="MY_OCID",
    model_kwargs={"temperature": 0, "max_tokens": 500},
)

prompt = PromptTemplate(input_variables=["query"], template="{query}")
llm_chain = prompt | llm

response = llm_chain.invoke("what is the capital of france?")
print(response)

流式处理

llm = OCIGenAI(
    model_id="cohere.command",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    compartment_id="MY_OCID",
    model_kwargs={"temperature": 0, "max_tokens": 500},
)

for chunk in llm.stream("Write me a song about sparkling water."):
    print(chunk, end="", flush=True)

身份验证

LlamaIndex 支持的身份验证方法与用于其他 OCI 服务的方法相同,并遵循标准 SDK 身份验证方法,特别是 API 密钥、会话令牌、实例主体和资源主体。 API 密钥是上述示例中使用的默认身份验证方法。以下示例演示了如何使用不同的身份验证方法(会话令牌)
llm = OCIGenAI(
    model_id="cohere.command",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    compartment_id="MY_OCID",
    auth_type="SECURITY_TOKEN",
    auth_profile="MY_PROFILE",  # replace with your profile name
    auth_file_location="MY_CONFIG_FILE_LOCATION",  # replace with file location where profile name configs present
)

专用 AI 集群

要访问专用 AI 集群中托管的模型,请创建一个端点,其分配的 OCID(当前前缀为 'ocid1.generativeaiendpoint.oc1.us-chicago-1')用作您的模型 ID。 访问专用 AI 集群中托管的模型时,您需要使用两个额外的必需参数(“provider”和“context_size”)初始化 OCIGenAI 接口。
llm = OCIGenAI(
    model_id="ocid1.generativeaiendpoint.oc1.us-chicago-1....",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    compartment_id="DEDICATED_COMPARTMENT_OCID",
    auth_profile="MY_PROFILE",  # replace with your profile name,
    auth_file_location="MY_CONFIG_FILE_LOCATION",  # replace with file location where profile name configs present
    provider="MODEL_PROVIDER",  # e.g., "cohere" or "meta"
    context_size="MODEL_CONTEXT_SIZE",  # e.g., 128000
)

以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.