跳到主要内容
Open In ColabOpen on GitHub

oci_generative_ai

Oracle 云基础设施生成式 AI

Oracle 云基础设施 (OCI) 生成式 AI 是一项完全托管的服务,提供一套最先进、可定制的大型语言模型 (LLM),涵盖广泛的使用场景,并通过单一 API 提供。使用 OCI 生成式 AI 服务,您可以访问即用型预训练模型,或在专用 AI 集群上根据您自己的数据创建和托管您自己的微调自定义模型。有关服务和 API 的详细文档可在此处和此处获取。

本笔记本解释了如何在 LangChain 中使用 OCI 的生成式 AI 完整模型。

设置

请确保已安装 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)
API 参考:OCIGenAI

使用提示模板进行链式操作

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)
API 参考: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},
)

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
)