Skip to main content
Open In ColabOpen on GitHub

Contextual AI

Contextual AI 提供专为准确可靠的企业级 AI 应用设计的尖端 RAG 组件。我们的 LangChain 集成将专用模型的独立 API 端点开放给您:

  • 接地语言模型 (GLM):全球最接地气的语言模型,通过优先忠于检索到的知识来最小化幻觉。GLM 提供卓越的事实准确性并附带行内引用,使其成为对可靠性要求极高的企业级 RAG 和智能体应用的理想选择。

  • Instruction-Following Reranker: 首个遵循自定义指令的智能重排序器,能够根据特定标准(如时效性、来源或文档类型)对文档进行优先级排序。在行业基准测试中表现优于竞争对手,我们的重排序器有效解决了企业知识库中的信息冲突挑战。

由 RAG 技术的发明者创立,Contextual AI 的专用组件帮助创新团队加速开发可投入生产、具备卓越准确性的 RAG 智能体。

接地语言模型 (GLM)

接地语言模型(GLM)专为最小化企业 RAG 和代理应用中的幻觉而设计。GLM 提供:

  • 在 FACTS 基准测试中表现出强大的性能,事实准确率达到 88%(查看基准测试结果
  • 响应严格基于提供的知识来源,并附带内联引用(阅读产品详情
  • 生成的响应中直接集成精确的源引用
  • 检索上下文优先于参数化知识 (查看技术概述)
  • 当信息不可用时,明确承认不确定性

GLM 可作为通用大型语言模型在 RAG 流水线中的即插即用替代方案,显著提升关键企业应用的可靠性。

指令遵循重排序器

全球首个遵循指令的重排序器(Reranker)以前所未有的控制力和准确性彻底革新了文档排名。核心功能包括:

  • 基于时间、来源、元数据等优先处理文档的自然语言指令(查看工作原理
  • 在 BEIR 基准测试中表现卓越,得分为 61.2,以显著优势超越竞争对手(查看基准数据
  • 来自多个知识源的冲突信息智能解析
  • 无缝集成,作为现有重排序器的即插即用替代方案
  • 通过自然语言命令动态控制文档排序

重新排序器在处理可能包含矛盾信息的企业知识库方面表现出色,允许您指定在各种场景下应优先采用哪些来源。

使用上下文 AI 与 LangChain

查看详情 这里

此集成允许您轻松地将 Contextual AI 的 GLM 和指令遵循重排序器(Instruction-Following Reranker)整合到您的 LangChain 工作流中。GLM 确保您的应用程序提供严格基于事实的响应,而重排序器通过智能优先处理最相关的文档,显著提升了检索质量。

无论您是为受监管行业还是注重安全的环境构建应用程序,Contextual AI 都能为您的企业用例提供所需的准确性、控制力和可靠性。

今天就开始免费试用,体验专为企业 AI 应用打造的、最可靠的语言模型和指令遵循重排序器。

接地语言模型

# Integrating the Grounded Language Model
import getpass
import os

from langchain_contextual import ChatContextual

# Set credentials
if not os.getenv("CONTEXTUAL_AI_API_KEY"):
os.environ["CONTEXTUAL_AI_API_KEY"] = getpass.getpass(
"Enter your Contextual API key: "
)

# initialize Contextual llm
llm = ChatContextual(
model="v1",
api_key="",
)
# include a system prompt (optional)
system_prompt = "You are a helpful assistant that uses all of the provided knowledge to answer the user's query to the best of your ability."

# provide your own knowledge from your knowledge-base here in an array of string
knowledge = [
"There are 2 types of dogs in the world: good dogs and best dogs.",
"There are 2 types of cats in the world: good cats and best cats.",
]

# create your message
messages = [
("human", "What type of cats are there in the world and what are the types?"),
]

# invoke the GLM by providing the knowledge strings, optional system prompt
# if you want to turn off the GLM's commentary, pass True to the `avoid_commentary` argument
ai_msg = llm.invoke(
messages, knowledge=knowledge, system_prompt=system_prompt, avoid_commentary=True
)

print(ai_msg.content)
According to the information available, there are two types of cats in the world:

1. Good cats
2. Best cats

指令遵循重排序器

import getpass
import os

from langchain_contextual import ContextualRerank

if not os.getenv("CONTEXTUAL_AI_API_KEY"):
os.environ["CONTEXTUAL_AI_API_KEY"] = getpass.getpass(
"Enter your Contextual API key: "
)


api_key = ""
model = "ctxl-rerank-en-v1-instruct"

compressor = ContextualRerank(
model=model,
api_key=api_key,
)

from langchain_core.documents import Document

query = "What is the current enterprise pricing for the RTX 5090 GPU for bulk orders?"
instruction = "Prioritize internal sales documents over market analysis reports. More recent documents should be weighted higher. Enterprise portal content supersedes distributor communications."

document_contents = [
"Following detailed cost analysis and market research, we have implemented the following changes: AI training clusters will see a 15% uplift in raw compute performance, enterprise support packages are being restructured, and bulk procurement programs (100+ units) for the RTX 5090 Enterprise series will operate on a $2,899 baseline.",
"Enterprise pricing for the RTX 5090 GPU bulk orders (100+ units) is currently set at $3,100-$3,300 per unit. This pricing for RTX 5090 enterprise bulk orders has been confirmed across all major distribution channels.",
"RTX 5090 Enterprise GPU requires 450W TDP and 20% cooling overhead.",
]

metadata = [
{
"Date": "January 15, 2025",
"Source": "NVIDIA Enterprise Sales Portal",
"Classification": "Internal Use Only",
},
{"Date": "11/30/2023", "Source": "TechAnalytics Research Group"},
{
"Date": "January 25, 2025",
"Source": "NVIDIA Enterprise Sales Portal",
"Classification": "Internal Use Only",
},
]

documents = [
Document(page_content=content, metadata=metadata[i])
for i, content in enumerate(document_contents)
]
reranked_documents = compressor.compress_documents(
query=query,
instruction=instruction,
documents=documents,
)
API 参考:文档