开始使用Claude 2和Claude 2 API

如果您想将一个更自然、高度准确的语言模型集成到您的应用程序中,Anthropic的Claude 2是您的最佳选择。它配备了一个公共聊天应用程序(类似于ChatGPT),API和各种版本模型的游乐场。

在博客文章《Claude vs. ChatGPT:2023年哪个AI助手最适合数据科学家?》中,了解Claude和ChatGPT的回答之间的区别。

在本教程中,我们将学习关于Claude 2X模型以及如何使用Python API访问它们。我们将涵盖使用API进行设置,进行基本查询以及处理在DataCamp工作空间中的响应。我们还将学习有关流式查询、异步请求以及API的一些更高级功能。到最后,您应该对如何将Claude 2集成到自己的应用程序中以利用其先进的自然语言能力有很好的理解。对于那些对生成式人工智能(generative AI)不熟悉的人来说,我们的AI基础技能路径可以帮助您学习准备明天的人工智能世界所需的新技术和模型。

Claude 2基础知识

Anthropic最近推出了Claude 2,这是他们的大型语言模型的最新版本。它在多个任务中表现出了改进的性能,回答更长、更连贯。此外,它还提供API访问和一个公共测试版网站,网址为claude.ai

这段文字的中文翻译如下:

图片来自claude.ai

Claude 2以其自然对话、增强的推理能力、扩展的记忆和上下文追踪而闻名,同时最大限度地减少有害输出。它在编码、数学推理和逻辑等能力方面显示出了改进。

例如,在法律推理中,克劳德2在律师考试的选择题部分得分为76.5%,比克劳德1.3高3.5%。在学术能力测试中,克劳德2在GRE阅读和写作部分的得分超过了90%的考生,与数量推理中的中位数申请者持平。

介绍Claude 2.1

2023年11月21日,Anthropic发布了Claude 2.1版本,展示了显著的改进,使其能够进行更高级的推理,同时减少了虚构内容。一个主要的焦点是通过提高诚实度来增强可靠性。Claude 2.1现在更加透明地展示其知识库中的空白,而不是试图捏造信息。

它具有更大的上下文窗口,达到了200K,允许克劳德引用和交叉检查长篇内容,如研究论文,以保持长篇摘要或分析的事实一致性。

Claude 2.1还引入了实验性的工具使用。它使得Claude 2能够从其他来源准确地检索和处理数据,并在调用函数和执行操作时使用。

设置 Claude 2

目前,对 Anthropic API 的访问仅限于一些特定的个人和组织。如果您想成为第一批尝试的人之一,您可以在网站上填写申请表。Anthropic 正在逐步授予访问权限,以确保 API 的安全性和可扩展性。请注意,由于请求量较大,可能需要一些时间才能获得 API 的访问权限。

一旦您收到Anthropic的批准电子邮件并创建了您的账户,您将被重定向到仪表盘。仪表盘上有一个链接到工作台,类似于OpenAI Playground,您可以在不同的模型之间切换并分析响应。此外,它还包含生成API密钥和文档的链接。

这段文字的中文翻译如下:

图片来自仪表盘

要创建一个API密钥,您需要点击“获取API密钥”按钮并输入密钥的名称。完成后,您将收到一个密钥,您可以使用该密钥使用Claude 2 API生成响应。

这段文字的中文翻译如下:

来自Anthropic的图片

要将API密钥设置为环境变量,您可以使用Bash命令或在DataCamp Workspace中设置。首先,启动工作区,然后转到左侧面板上的”环境”按钮。点击加号按钮,添加变量的名称和值。最后,按保存以应用更改。

这段文字的中文翻译如下:

图片来自Workspace

注意:由于安全原因,强烈不建议直接在Python函数中应用API密钥。

要在Python中访问Anthropic API,您首先需要使用PIP安装Anthropic SDK for Python

pip install anthropic

访问Claude 2 API

在这部分中,我们将学习如何访问Anthropic API,使用Claude 2.1模型生成响应。您可以通过复制工作区来进行编码:开始使用Claude 2和Claude 2 API

我们将加载os来访问API密钥,并使用anthropic库来使用API密钥创建对话式AI流水线。

from anthropic import Anthropic, HUMAN_PROMPT, AI_PROMPT
import os

anthropic_api_key = os.environ["ANTHROPIC_API_KEY"]

anthropic = Anthropic(
    api_key= anthropic_api_key,
)

“HUMAN_PROMPT”和“AI_PROMPT”实际上是用于创建生成管道的正确提示结构的字符串。

这段文字翻译成中文如下:

我们将通过提供模型版本、最大令牌长度和提示来生成响应。确保您的提示遵循Claude 2X模板。

completion = anthropic.completions.create(
    model="claude-2.1",
    max_tokens_to_sample=350,
    prompt=f"{HUMAN_PROMPT} 如何在一周内学会Python?{AI_PROMPT}",
)
print(completion.completion)

我们得到了一个完美的结果。Claude 2.1为我们提供了一个详细的一周学习Python的计划。

Anthropic为同步和异步API请求提供支持。

同步API按顺序执行请求,阻塞直到接收到响应后再调用下一个调用。另一方面,异步API允许多个并发请求而不阻塞,处理完成后立即处理响应。这使得异步API与同步API相比更高效和可扩展。

为了异步调用API,导入AsyncAnthropic而不是Anthropic。使用async语法定义一个函数,并在每个API调用前使用await

from anthropic import AsyncAnthropic

anthropic = AsyncAnthropic()


async def main():
    completion = await anthropic.completions.create(
        model="claude-2.1",
        max_tokens_to_sample=300,
        prompt=f"{HUMAN_PROMPT}木星有多少颗卫星?{AI_PROMPT}",
    )
    print(completion.completion)


await main()

我们得到了一个几乎准确的结果。一些来源说有79颗,但NASA说木星有95颗卫星。

注意:在运行代码时,如果是在Python的.py文件中而不是在Jupyter Notebook中,请使用asyncio.run(main())而不是await main()

LLM Streaming with Claude 2

流媒体已成为大型语言模型的一项重要技术,相比传统的处理方法,它提供了几个优势。流媒体允许在输出可用时立即处理输出,而不是等待整个响应。这种方法通过逐个返回语言模型的标记,而不是一次性返回所有输出,从而减少了感知延迟。

要激活流式传输,请在完成函数中将’stream’参数设置为`True`。

anthropic = Anthropic()

stream = anthropic.completions.create(
    prompt=f"{HUMAN_PROMPT}Could you please write a Python code to train a simple classification model?{AI_PROMPT}",
    max_tokens_to_sample=350,
    model="claude-2.1",
    stream=True,
)
for completion in stream:
    print(completion.completion, end="", flush=True)

看起来我们以逐行的方式更快地接收到了响应,就像Claude 2.1正在打字一样。

同样地,我们也可以以`async`模式运行流式处理。请注意,在完成函数前面添加了`await`关键字,并在for循环前面添加了`async`关键字。anthropic = AsyncAnthropic()

stream = await anthropic.completions.create(
prompt=f”{HUMAN_PROMPT}请写一篇关于神经网络的博客文章,并使用Markdown格式。请确保您的作品没有拼写、语法或标点错误。{AI_PROMPT}”,
max_tokens_to_sample=350,
model=”claude-2.1″,
stream=True,
)
async for completion in stream:
print(completion.completion, end=””, flush=True)

我们的生成式人工智能在撰写一篇合适的博客方面做得很好。

查看7个必备的生成式人工智能工具列表,这些工具可以帮助您构建功能完善、上下文感知的聊天机器人应用程序。

高级功能和自定义

Anthropic API提供了一些高级功能和自定义选项,超出了基本的响应生成:

  • 错误处理:特定的异常类型,如APIConnectionError和APIStatusError,可以清晰地处理连接问题和HTTP错误。
  • 默认标头:anthropic-version标头会自动发送以识别客户端。可以通过更改anthropic对象中的default_headers参数来自定义。
  • 日志记录:通过设置ANTHROPIC_LOG环境变量可以启用调试日志记录。这有助于故障排除。
  • HTTP客户端:支持请求的HTTPX客户端可以配置代理、传输和其他高级功能。
  • 资源管理:您可以使用.close()方法手动关闭客户端,或者使用上下文管理器在退出时自动关闭。
  • 提示技术:API文档提供了多个关键字,用于优化您的输入,包括文本、结构化文档、代码片段和RAG结果。
  • 提示验证:API执行基本的提示清理和验证,以确保其针对Claude 2模型进行了优化。

要了解更多高级功能,请查看Anthropic API 文档

Claude 2 API的实际应用

Claude 2 API在许多行业和领域都有广泛的实际应用。在内容创作和文案撰写方面,它可以帮助起草高质量的文章、营销材料和创意写作。此外,在:

  • 语言翻译:您可以构建应用程序,利用先进的多语言能力提供实时翻译。
  • 教育:它非常适合个性化学习。学生可以利用它更快地学习复杂的主题。
  • 客户支持:它提供更准确和类似人类的上下文感知响应。
  • 编程辅助:生成代码片段,调试和解释复杂概念以加快开发速度。
  • 创意艺术:与艺术家合作生成音乐作品等内容。
  • 法律/合规:起草文件,总结法律,并确保合规性。

结论

Python API提供了一种强大的方式来访问Anthropic的最先进的对话式AI模型。我们介绍了设置访问密钥、进行同步和异步API调用、流式响应以及一些高级功能的基础知识。此外,我们还了解了Claude 2的实际应用。

虽然API仍处于有限可用状态,Anthropic正在逐渐增加访问权限。随着Claude 2的不断发展,Python API将使开发人员能够轻松地将其尖端功能集成到各种产品和服务中。

我希望你觉得这个关于Claude 2 API的介绍很有用!随意尝试代码示例,亲自体验Claude 2的令人印象深刻的技能。这里有一个列表5个使用生成式AI模型可以构建的项目,并且可以激发你构建下一个生成式AI项目的灵感,使用Claude 2。