以编程方式使用文档

本页面涵盖所有与 Oracle Cloud Infrastructure (OCI).

安装和设置

pip install langchain-oci oci
uv add langchain-oci oci

身份验证

OCI 服务支持四种身份验证方法。所有方法均遵循 标准 OCI SDK 身份验证.

API 密钥(默认)

使用以下位置的凭据 ~/.oci/config:

from langchain_oci import ChatOCIGenAI

llm = ChatOCIGenAI(
    model_id="meta.llama-3.3-70b-instruct",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    compartment_id="ocid1.compartment.oc1..xxx",
    auth_type="API_KEY",        # Default
    auth_profile="DEFAULT",      # Profile name in ~/.oci/config
)

安全令牌

对于基于会话的身份验证:

oci session authenticate --profile-name MY_PROFILE
llm = ChatOCIGenAI(
    model_id="meta.llama-3.3-70b-instruct",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    compartment_id="ocid1.compartment.oc1..your-compartment-id",
    auth_type="SECURITY_TOKEN",
    auth_profile="MY_PROFILE",
)

实例主体

对于在 OCI 计算实例上运行的应用程序:

llm = ChatOCIGenAI(
    model_id="meta.llama-3.3-70b-instruct",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    compartment_id="ocid1.compartment.oc1..your-compartment-id",
    auth_type="INSTANCE_PRINCIPAL",
)

资源主体

对于 OCI Functions 和其他资源:

llm = ChatOCIGenAI(
    model_id="meta.llama-3.3-70b-instruct",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    compartment_id="ocid1.compartment.oc1..your-compartment-id",
    auth_type="RESOURCE_PRINCIPAL",
)

OCI Generative AI

> Oracle Cloud Infrastructure (OCI) 生成式 AI 是一项完全托管的服务,提供一套最先进的、可定制的大语言模型 (LLM),涵盖广泛的用例,可通过单一 API 获取。 > 使用 OCI Generative AI 服务,您可以访问即用型预训练模型,或在专用 AI 集群上基于您自己的数据创建并托管自己微调的自定义模型。

聊天模型

ChatOCIGenAI

OCI Generative AI 服务的主要聊天模型,具有完整的 LangChain 功能支持。

参见 使用示例.

from langchain_oci import ChatOCIGenAI

llm = ChatOCIGenAI(
    model_id="meta.llama-3.3-70b-instruct",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    compartment_id="ocid1.compartment.oc1..xxx",
)

支持的功能: - ✅ 工具调用(包括 Llama 4+ 的并行工具) - ✅ 结构化输出(Pydantic、JSON 模式) - ✅ 视觉与多模态(13+ 模型支持图像) - ✅ 流式输出(同步和异步) - ✅ 异步操作(ainvoke、astream、abatch) - ✅ PDF、视频、音频处理(Gemini 模型)

ChatOCIOpenAI

OCI 商业 OpenAI 模型的 OpenAI Responses API 兼容性。

from langchain_oci import ChatOCIOpenAI

llm = ChatOCIOpenAI(
    model="openai.gpt-5.5",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    compartment_id="ocid1.compartment.oc1..your-compartment-id",
)

Features: - OpenAI 兼容接口 - 对话存储支持持久内存 - 访问 GPT-4、GPT-5、o1、o3 模型(视供应情况而定)

嵌入模型

OCIGenAIEmbeddings

文本和图像嵌入模型。

参见 使用示例.

from langchain_oci import OCIGenAIEmbeddings

# Text embeddings
embeddings = OCIGenAIEmbeddings(
    model_id="cohere.embed-english-v3.0",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    compartment_id="ocid1.compartment.oc1..xxx",
)

# Image embeddings (with multimodal models)
vector = embeddings.embed_image("./architecture_diagram.png")

可用模型: - cohere.embed-english-v3.0 (1024 维) - cohere.embed-multilingual-v3.0 (1024 维) - cohere.embed-v4.0 (文本 + 图像,256-1536 维度)

视觉与多模态

涵盖 Meta Llama、Google Gemini、xAI Grok 和 Cohere 的 13+ 视觉模型:

from langchain.messages import HumanMessage
from langchain_oci import ChatOCIGenAI, load_image

llm = ChatOCIGenAI(
    model_id="meta.llama-3.2-90b-vision-instruct",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    compartment_id="ocid1.compartment.oc1..xxx",
)

message = HumanMessage(content=[
    {"type": "text", "text": "Identify all microservices, data flows, and external dependencies."},
    load_image("./architecture_diagram.png"),
])
response = llm.invoke([message])

Gemini 多模态 (PDF、视频、音频):

from langchain.messages import HumanMessage
from langchain_oci import ChatOCIGenAI

llm = ChatOCIGenAI(
    model_id="google.gemini-2.5-flash",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    compartment_id="ocid1.compartment.oc1..your-compartment-id",
)

# PDF processing - Extract structured data from contracts
with open("vendor_contract.pdf", "rb") as f:
    pdf_data = base64.b64encode(f.read()).decode()

message = HumanMessage(content=[
    {"type": "text", "text": "Extract: parties, effective date, payment terms. Return as JSON."},
    {"type": "document_url", "document_url": {"url": f"data:application/pdf;base64,{pdf_data}"}}
])
response = llm.invoke([message])

AI 代理

使用 OCI 模型创建 LangGraph 驱动的 ReAct 代理:

from langchain.tools import tool
from langchain_oci import create_oci_agent

@tool
def query_infrastructure(resource_type: str, region: str) -> dict:
    """Query OCI infrastructure status and health metrics.

    Args:
        resource_type: Type of resource (compute, database, network)
        region: OCI region to query
    """
    # Example: Call OCI monitoring API
    return {
        "status": "healthy",
        "active_instances": 12,
        "cpu_utilization": "45%",
        "alerts": []
    }

agent = create_oci_agent(
    model_id="meta.llama-4-scout-17b-16e-instruct",
    tools=[query_infrastructure],
    compartment_id="ocid1.compartment.oc1..xxx",
    service_endpoint="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com",
    system_prompt="You are an infrastructure monitoring assistant.",
)

from langchain.messages import HumanMessage
result = agent.invoke({
    "messages": [HumanMessage(content="Check compute resource health in us-ashburn-1")]
})

提供商覆盖

提供商示例模型关键功能
**Meta**Llama 3.2、3.3、4(Scout、Maverick)视觉、并行工具调用
**Google**Gemini 2.0/2.5 Flash, Flash Lite, ProPDF, video, audio processing
**xAI**Grok 3、4(Fast、Mini)视觉、推理模式
**Cohere**Command R+、Command ARAG 优化、V2 视觉
**OpenAI**GPT-5.5、GPT-5、o1、o3推理(通过 ChatOCIOpenAI)

> **Note:** 模型可用性因地区而异。请参阅 OCI 生成式 AI 文档 了解当前模型目录。

OCI 数据科学模型部署

> OCI 数据科学 是一个面向数据科学团队的全托管无服务器平台。使用以下服务将自定义模型部署为端点: OCI 数据科学模型部署服务.

ChatOCIModelDeployment

用于 OCI 数据科学模型部署的聊天模型。

请参阅 ChatOCIModelDeployment 集成指南.

from langchain_oci import ChatOCIModelDeployment

llm = ChatOCIModelDeployment(
    endpoint="https://modeldeployment.us-ashburn-1.oci.customer-oci.com/ocid1.datasciencemodeldeployment.oc1.iad.xxx/predict",
    model="odsc-llm",
)

ChatOCIModelDeploymentVLLM

针对基于 vLLM 的部署进行优化,支持流式传输:

from langchain_oci import ChatOCIModelDeploymentVLLM

llm = ChatOCIModelDeploymentVLLM(
    endpoint="https://modeldeployment.us-ashburn-1.oci.customer-oci.com/ocid1.datasciencemodeldeployment.oc1.iad.xxx/predict",
    model="meta-llama/Llama-2-7b-chat-hf",
    streaming=True,
)

ChatOCIModelDeploymentTGI

适用于文本生成推理(TGI)部署:

from langchain_oci import ChatOCIModelDeploymentTGI

llm = ChatOCIModelDeploymentTGI(
    endpoint="https://modeldeployment.us-ashburn-1.oci.customer-oci.com/ocid1.datasciencemodeldeployment.oc1.iad.xxx/predict",
)

示例

有关所有功能的综合指南,请参阅 langchain-oci 示例:

示例级别主题
01: 入门初学者身份验证、基本聊天、提供商
02: 视觉与多模态初学者图像分析、PDF、视频、音频
03: 构建 AI 代理中级ReAct 代理、工具、记忆
04: 工具调用精通中级并行工具、工作流
05: 结构化输出中级Pydantic 模式、JSON 模式
07: 生产环境异步处理高级ainvoke、astream、FastAPI
09: 提供商深度探讨专业化Meta、Gemini、Cohere、xAI 特性
10: 嵌入专业化文本和图像嵌入,RAG

其他资源