第五期书生大模型实战营-《L1G1-玩转书生大模型 API 之 Browser-Use 实践》

一、 搭建环境

复制代码
pip install requests openai

1.2、获取API

复制代码
https://internlm.intern-ai.org.cn/api/tokens

1.3 运行API

复制代码
from openai import OpenAI
from dotenv import load_dotenv
import os

from openai import OpenAI
from dotenv import load_dotenv
import os

# InternLM_api_key = os.getenv("InternLM", load_dotenv())
InternLM_api_key="xxxUJk6kx4wGK2fetm4WMxuZWSRB9WEq6MSpfLlJls2jA2xIpLAmf8EgDh6Uow"
client = OpenAI(
    api_key=InternLM_api_key,  
    base_url="https://chat.intern-ai.org.cn/api/v1/",
)

chat_rsp = client.chat.completions.create(
     model="internlm3-latest",
     messages=[{
            "role": "user",         #role 支持 user/assistant/system/tool
            "content": "你知道刘慈欣吗?"
    }, {
            "role": "assistant",
            "content": "为一个人工智能助手,我知道刘慈欣。他是一位著名的中国科幻小说家和工程师,曾经获得过多项奖项,包括雨果奖、星云奖等。"
    },{
            "role": "user",
            "content": "他什么作品得过雨果奖?"
    }],
    stream=False
)

for choice in chat_rsp.choices:
    print(choice.message.content)
#若使用流式调用:stream=True,则使用下面这段代码
#for chunk in chat_rsp:
#    print(chunk.choices[0].delta.content)
复制代码
import requests
import json
from dotenv import load_dotenv
import os
InternLM_api_key="exxxxWMxuZWSRB9WEq6MSpfLlJls2jA2xIpLAmf8EgDh6Uow"

url = 'https://chat.intern-ai.org.cn/api/v1/chat/completions'
header = {
    'Content-Type':'application/json',
    "Authorization":"Bearer "+InternLM_api_key,
}
data = {
    "model": "internlm3-latest",  
    "messages": [{
        "role": "user",
        "content": "你好~"
    }],
    "n": 1,
    "temperature": 0.8,
    "top_p": 0.9
}

res = requests.post(url, headers=header, data=json.dumps(data))
print(res.status_code)
print(res.json())
print(res.json()["choices"][0]['message']["content"])
复制代码
from openai import OpenAI
from dotenv import load_dotenv
import os

InternLM_api_key="exxxxuZWSRB9WEq6MSpfLlJls2jA2xIpLAmf8EgDh6Uow"
client = OpenAI(
    api_key=InternLM_api_key,
    base_url="https://chat.intern-ai.org.cn/api/v1/",
)

chat_rsp = client.chat.completions.create(
     model="internvl2.5-latest",
     messages=[
        {
            "role": "user",
            "content": "你好"
        },
        {
            "role": "assistant",
            "content": "你好,我是 internvl"
        },
        {
            "role": "user",
            "content": [                                    #用户的图文提问内容,数组形式
                {
                    "type": "text",                        # 支持 text/image_url
                    "text": "Describe these two images please"
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://static.openxlab.org.cn/internvl/demo/visionpro.png"  #支持互联网公开可访问的图片 url 或图片的 base64 编码
                    }
                },
                {
                    "type": "image_url",                                                     # 单轮对话支持上传多张图片
                    "image_url": {
                        "url": "https://static.openxlab.org.cn/puyu/demo/000-2x.jpg"
                    }
                }
            ]
        }
    ],
    n=1,
    stream=False
)

for choice in chat_rsp.choices:
    print(choice.message.content)
复制代码
from openai import OpenAI
from dotenv import load_dotenv
import os

# 加载环境变量
load_dotenv()
InternLM_api_key="xxxxkx4wGK2fetm4WMxuZWSRB9WEq6MSpfLlJls2jA2xIpLAmf8EgDh6Uow"

# 初始化客户端
client = OpenAI(
    api_key=InternLM_api_key,
    base_url="https://chat.intern-ai.org.cn/api/v1/",
)

# 构建包含3轮对话的上下文
messages = [
    # 第一轮对话
    {
        "role": "user",
        "content": "你好,请介绍一下你自己"
    },
    {
        "role": "assistant",
        "content": "你好!我是 InternVL,一个多模态AI助手。我可以理解和分析文本与图像,帮助您处理各种任务,包括图像描述、视觉问答、文档理解等。有什么我可以帮助您的吗?"
    },

    # 第二轮对话
    {
        "role": "user",
        "content": "你能处理哪些类型的图像任务?"
    },
    {
        "role": "assistant",
        "content": "我可以处理多种图像任务:\\n1. 图像描述:详细描述图片内容\\n2. 视觉问答:回答关于图片的问题\\n3. 图像对比:分析多张图片的异同\\n4. OCR识别:提取图片中的文字\\n5. 图表分析:理解图表、图形数据\\n6. 场景理解:识别图片中的物体、人物和场景"
    },

    # 第三轮对话 - 包含图像
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "请分析这两张图片,告诉我它们分别展示了什么产品,以及它们的主要特点"
            },
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://static.openxlab.org.cn/internvl/demo/visionpro.png"
                }
            },
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://static.openxlab.org.cn/puyu/demo/000-2x.jpg"
                }
            }
        ]
    }
]

# 调用API获取最终回复
try:
    chat_rsp = client.chat.completions.create(
        model="internvl2.5-latest",
        messages=messages,
        n=1,
        stream=False,
        temperature=0.8,  # 控制回复的创造性
        max_tokens=500  # 限制回复长度
    )

    # 打印最终回复
    print("=== API 最终回复 ===")
    for choice in chat_rsp.choices:
        print(choice.message.content)

    # 可选:打印整个对话历史
    print("\\n=== 完整对话历史 ===")
    for i, msg in enumerate(messages):
        print(f"\\n轮次 {i // 2 + 1}:")
        if msg["role"] == "user":
            if isinstance(msg["content"], str):
                print(f"用户: {msg['content']}")
            else:
                print(f"用户: {msg['content'][0]['text']}")
                print(f"      (包含 {len(msg['content']) - 1} 张图片)")
        else:
            print(f"助手: {msg['content']}")

except Exception as e:
    print(f"API调用出错: {str(e)}")

2 Browser-Use

2.1、安装环境

复制代码
git clone https://github.com/sanjion/Web-ui.git
cd web-ui
pip install -r requirements.txt 
playwright install --with-deps chromium
pip install --upgrade gradio  -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install lxml
pip install lxml_html_clean

2.2 复制文件

复制代码
cp .env.example .env
python webui.py --ip 127.0.0.1 --port 7788
相关推荐
QQ6765800813 分钟前
基于 PyTorch 的 VGG16 深度学习人脸识别检测系统的实现+ui界面
人工智能·pytorch·python·深度学习·ui·人脸识别
木木黄木木14 分钟前
Python制作史莱姆桌面宠物!可爱的
开发语言·python·宠物
exploration-earth38 分钟前
本地优先的状态管理与工具选型策略
开发语言·前端·javascript
胖哥真不错42 分钟前
Python基于方差-协方差方法实现投资组合风险管理的VaR与ES模型项目实战
python·毕业设计·课程设计·方差-协方差方法·投资组合风险管理·var与es模型
慧一居士1 小时前
flask功能使用总结和完整示例
python
苦学编程的谢1 小时前
Java网络编程API 1
java·开发语言·网络
大模型铲屎官1 小时前
【深度学习-Day 23】框架实战:模型训练与评估核心环节详解 (MNIST实战)
人工智能·pytorch·python·深度学习·大模型·llm·mnist
寒山李白1 小时前
Java 依赖注入、控制反转与面向切面:面试深度解析
java·开发语言·面试·依赖注入·控制反转·面向切面
梓仁沐白2 小时前
【Kotlin】数字&字符串&数组&集合
android·开发语言·kotlin
Java菜鸟、2 小时前
设计模式(代理设计模式)
java·开发语言·设计模式