第五期书生大模型实战营-《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
相关推荐
是喵斯特ya2 分钟前
python开发web暴力破解工具(基础篇)
开发语言·python·web安全
love530love4 分钟前
Win11+RTX3090 亲测 · ComfyUI Hunyuan3D 全程实录 ②:nvdiffrast 源码编译实战(CUDA 13.1 零降级)
人工智能·windows·python·github·nvdiffrast
Legendary_0085 分钟前
Type-C一拖三快充线的核心优势与LDR6020方案深度解析
c语言·开发语言·电脑
长安牧笛8 分钟前
开发农民工技能兼匹配系统,输入技能如水电微修,自动匹配附近需要临时工的家庭或店铺。
python
zew10409945888 分钟前
PyCharm【2023.2.5下】中命令行【Terminal】不见了如何解决?
ide·python·pycharm·快捷键·terminal·命令行消失
耶耶耶耶耶~9 分钟前
conan 2.0 Getting Started
python·conan
MarkHD10 分钟前
智能体在车联网中的应用:第12天 CARLA实战:编写Python客户端生成与控制车辆,迈向联合仿真
开发语言·python
Generalzy10 分钟前
应该是跨时代的更新——langgraph v1.0
python
青出于兰11 分钟前
C语言| 指针变量的自增运算
c语言·开发语言
xqqxqxxq13 分钟前
Java 集合框架核心用法与实战技术笔记
java·笔记·python