当前位置:首页>文章>使用指南>Claude-Python示例代码

Claude-Python示例代码

文本是《工具配置(共23篇)》专题的第 21 篇。阅读本文前,建议先阅读前面的文章:

1. 资源准备

2. pom依赖

pip install anthropic

3. 实现代码(非流式)

import anthropic

# 这里填写您在https://yibuapi.com上创建的apikey
api_key = "sk-xxxx"
# 这里填写https://yibuapi.com
base_url = "https://yibuapi.com"
# 这是问题
questions = f"""
生成三个虚构的中文书名及其作者和类型的清单。 
使用以下键以 JSON 格式提供它们:book_id, title, author, genre.
"""

def get_claude_response(question, api_key, base_url):
    try:
        client = anthropic.Anthropic(
            api_key=api_key,
            base_url=base_url
        )

        response = client.messages.create(
            model="claude-3-7-sonnet-latest",  # 最新版模型ID
            max_tokens=1000,
            temperature=0.7,
            system="你是一个专业的图书管理员",
            messages=[
                {"role": "user", "content": question}
            ]
        )
        return response.content[0].text
    except Exception as e:
        return f"请求失败: {str(e)}"

if __name__ == "__main__":
    response = get_claude_response(questions, api_key, base_url)
    print(f"回答: {response}\n")

4. 实现代码(流式)

import anthropic

# 这里填写您在https://yibuapi.com上创建的apikey
api_key = ""
# 这里填写https://yibuapi.com
base_url = "https://yibuapi.com"
# 这是问题
questions = f"""
生成三个虚构的中文书名及其作者和类型的清单。 
使用以下键以 JSON 格式提供它们:book_id, title, author, genre.
"""

def get_claude_streaming_response(question, api_key, base_url):
    try:
        client = anthropic.Anthropic(
            api_key=api_key,
            base_url=base_url
        )

        # 创建流式消息请求
        with client.messages.stream(
                model="claude-3-7-sonnet-latest",  # 最新版模型ID
                max_tokens=1000,
                temperature=0.7,
                system="你是一个专业的图书管理员",
                messages=[
                    {"role": "user", "content": question}
                ]
        ) as stream:
            # 打印流式响应的开始提示
            print("开始接收流式响应...\n")

            # 用于累积完整响应的变量
            full_response = ""

            # 处理流式响应
            for text in stream.text_stream:
                print(text, end="", flush=True)  # 实时打印每个文本块
                full_response += text

            # 流结束后打印分隔线
            print("\n\n" + "-" * 50)
            return full_response

    except Exception as e:
        return f"请求失败: {str(e)}"

if __name__ == "__main__":
    response = get_claude_streaming_response(questions, api_key, base_url)
    print(f"\n完整回答: {response}\n")

5. 运行效果

Claude-Python示例代码

您已阅读完《工具配置(共23篇)》专题的第 21 篇。请继续阅读该专题下面的文章:

使用指南

91协商写作平台

2025-8-22 18:13:02

使用指南

OpenAI-image-Python示例代码

2025-8-24 21:52:00

搜索