oci_generative_ai
Oracle Cloud Infrastructure 生成式 AI
Oracle Cloud Infrastructure (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)
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
)
专用 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,
provider="MODEL_PROVIDER", # e.g., "cohere" or "meta"
context_size="MODEL_CONTEXT_SIZE", # e.g., 128000
)