本页面涵盖所有与 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, Pro | PDF, video, audio processing |
| **xAI** | Grok 3、4(Fast、Mini) | 视觉、推理模式 |
| **Cohere** | Command R+、Command A | RAG 优化、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 |
其他资源
- - API 参考
- - GitHub 代码库
- - OCI 生成式 AI 文档
- - OCI 数据科学文档