oci_generative_ai
Oracle Cloud Infrastructure 生成式人工智能
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
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
)