SDK调用文心一言如何接入,文心一言API接入教程

news2025/1/13 0:04:16

一、前期准备

  1. 注册百度智能云账号

    • 前往百度智能云官网注册一个账号。这是接入文心一言API的基础。
  2. 了解API接口

    • 在百度智能云开放平台中,找到文心一言API的详情页,了解提供的API接口类型(如云端API、移动端API、离线版API等)及其功能特点。
    • 根据应用场景和需求,选择适合的API接口。

二、创建应用并获取API密钥

  1. 登录百度智能云千帆控制台

    • 使用百度智能云账号登录千帆控制台。
  2. 创建应用

    • 在控制台中,点击“创建应用”按钮。
    • 根据提示填写应用名称、描述等信息。
    • 创建成功后,将获取到AppID、API Key、Secret Key等关键信息。
  3. 获取API密钥

    • 在应用详情页中查看并复制API Key和Secret Key。这两个密钥将用于后续调用API接口时的身份验证。

最后就是能过SDK调用

调用本接口,发起一次对话请求。

支持模型列表

模型名称模型版本model 参数值
ERNIE 4.0ERNIE-4.0-8K-Latesternie-4.0-8k-latest
ERNIE 4.0ERNIE-4.0-8K-Previewernie-4.0-8k-preview
ERNIE 4.0ERNIE-4.0-8Kernie-4.0-8k
ERNIE 4.0 TurboERNIE-4.0-Turbo-8K-Latesternie-4.0-turbo-8k-latest
ERNIE 4.0 TurboERNIE-4.0-Turbo-8K-Previewernie-4.0-turbo-8k-preview
ERNIE 4.0 TurboERNIE-4.0-Turbo-8Kernie-4.0-turbo-8k
ERNIE 4.0 TurboERNIE-4.0-Turbo-128Kernie-4.0-turbo-128k
ERNIE 3.5ERNIE-3.5-8K-Previewernie-3.5-8k-preview
ERNIE 3.5ERNIE-3.5-8Kernie-3.5-8k
ERNIE 3.5ERNIE-3.5-128Kernie-3.5-128k
ERNIE SpeedERNIE-Speed-8Kernie-speed-8k
ERNIE SpeedERNIE-Speed-128Kernie-speed-128k
ERNIE SpeedERNIE-Speed-Pro-128Kernie-speed-pro-128k
ERNIE LiteERNIE-Lite-8Kernie-lite-8k
ERNIE LiteERNIE-Lite-Pro-128Kernie-lite-pro-128k
ERNIE TinyERNIE-Tiny-8Kernie-tiny-8k
ERNIE CharacterERNIE-Character-8Kernie-char-8k
ERNIE CharacterERNIE-Character-Fiction-8Kernie-char-fiction-8k
ERNIE-Novel-8KERNIE-Novel-8Kernie-novel-8k



使用说明

本文API支持通过Python SDK、Go SDK和Node.js SDK调用,调用流程请参考SDK安装及使用流程。

  • Python SDK,请确保使用最新版本,版本需≥0.4.11。
  • Go SDK,请确保使用最新版本,版本需≥0.0.13。
  • Node.js SDK,请确保使用最新版本,版本需≥0.2.2。

SDK调用

调用示例(非流式)

使用model字段,指定平台支持预置服务的模型,调用示例如下。

  • Python
  • Go
  • Java
  • Node.js
from qianfan import Qianfan

client = Qianfan(
 
    # 方式一:使用安全认证AK/SK鉴权
    # 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk,如何获取请查看https://cloud.baidu.com/doc/Reference/s/9jwvz2egb
    access_key="your_iam_ak",
    secret_key="your_iam_sk",
    #app_id="", # 选填,不填写则使用默认appid

    # 方式二:使用应用BearerToken鉴权
    # 替换下列示例中参数,将your_BearerToken替换为真实值,如何获取请查看https://cloud.baidu.com/doc/IAM/s/Mm2x80phi
    #api_key="your_BearerToken" 
    #app_id="", # 选填,不填写则使用默认appid
)

completion = client.chat.completions.create(
    model="ernie-3.5-8k", # 指定特定模型
    messages=[ 
        # 也可以不设置system字段
        {'role': 'system', 'content': '平台助手'},
        {'role': 'user', 'content': '你好'}
    ]
)

print(completion.choices[0])

返回示例(非流式)

  • Python
  • Go
  • Java
  • Node.js
finish_reason='normal' index=0 message=ChatCompletionMessage(content='您好!请问您是想了解关于“平台助手”的信息吗?如果是的话,能否具体说明一下您想了解的是哪个平台或者哪种类型的助手呢?这样我可以为您提供更详细和准确的信息。', role='assistant', name=None, content_type=None, function_call=None) need_clear_history=None ban_round=None function_call=None search_info=None flag=0 tools_info=None

调用示例(流式)

  • Python
  • Go
  • Java
  • Node.js
from qianfan import Qianfan

client = Qianfan(
 
    # 方式一:使用安全认证AK/SK鉴权
    # 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk,如何获取请查看https://cloud.baidu.com/doc/Reference/s/9jwvz2egb
    access_key="your_iam_ak",
    secret_key="your_iam_sk",
    #app_id="", # 选填,不填写则使用默认appid

    # 方式二:使用应用BearerToken鉴权
    # 替换下列示例中参数,将your_BearerToken替换为真实值,如何获取请查看https://cloud.baidu.com/doc/IAM/s/Mm2x80phi
    #api_key="your_BearerToken" 
    #app_id="", # 选填,不填写则使用默认appid
)

completion = client.chat.completions.create(
    model="ernie-3.5-8k", # 指定特定模型
    messages=[ 
        {'role': 'system', 'content': '平台助手'},
        {'role': 'user', 'content': '你好'}
    ],
    stream=True
)

for r in completion:
    print(r)

返回示例(流式)

  • Python
  • Go
  • Java
  • Node.js
id='as-gue7zc41p4' choices=[CompletionChunkChoice(delta=ChoiceDelta(content='您好!'), finish_reason=None, index=0)] created=1733465174 model='ernie-3.5-8k' object='chat.completion.chunk' usage=None statistic=CompletionStatistic(first_token_latency=0.49492, request_latency=0.0, total_latency=0.0, start_timestamp=1733465172918.0, avg_output_tokens_per_second=0.0)
id='as-gue7zc41p4' choices=[CompletionChunkChoice(delta=ChoiceDelta(content='很高兴与您'), finish_reason=None, index=0)] created=1733465174 model='ernie-3.5-8k' object='chat.completion.chunk' usage=None statistic=CompletionStatistic(first_token_latency=0.49492, request_latency=0.0, total_latency=0.0, start_timestamp=1733465172918.0, avg_output_tokens_per_second=0.0)
id='as-gue7zc41p4' choices=[CompletionChunkChoice(delta=ChoiceDelta(content='交流。'), finish_reason=None, index=0)] created=1733465174 model='ernie-3.5-8k' object='chat.completion.chunk' usage=None statistic=CompletionStatistic(first_token_latency=0.49492, request_latency=0.0, total_latency=0.0, start_timestamp=1733465172918.0, avg_output_tokens_per_second=0.0)
id='as-gue7zc41p4' choices=[CompletionChunkChoice(delta=ChoiceDelta(content='您提到的'), finish_reason=None, index=0)] created=1733465174 model='ernie-3.5-8k' object='chat.completion.chunk' usage=None statistic=CompletionStatistic(first_token_latency=0.49492, request_latency=0.0, total_latency=0.0, start_timestamp=1733465172918.0, avg_output_tokens_per_second=0.0)
id='as-gue7zc41p4' choices=[CompletionChunkChoice(delta=ChoiceDelta(content='“平台'), finish_reason=None, index=0)] created=1733465174 model='ernie-3.5-8k' object='chat.completion.chunk' usage=None statistic=CompletionStatistic(first_token_latency=0.49492, request_latency=0.0, total_latency=0.0, start_timestamp=1733465172918.0, avg_output_tokens_per_second=0.0)
...

function call调用示例

  • 第一次请求
  • Python
from qianfan import Qianfan
import os

#通过环境变量初始化认证信息
# 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"

client = Qianfan()

completion = client.chat.completions.create(
    model="ernie-3.5-8k",
    messages=[{"role": "user", "content": "你好,我想知道明天北京的天气怎么样"}],
    tools=[{
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "天气查询工具",
            "parameters": {
                "properties": {
                    "location": {
                        "description": "地理位置,精确到区县级别",
                        "type": "string"
                    },
                    "time": {
                        "description": "时间,格式为YYYY-MM-DD",
                        "type": "string"
                    }
                },
                "required": ["location", "time"],
                "type": "object"
            }
        }
    }],
)

print(completion.json(ensure_ascii=False))
  • 第二次请求
  • Python
from qianfan import Qianfan
import os

#通过环境变量初始化认证信息
# 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"

client = Qianfan()

# 模拟函数调用并给出结果

completion = client.chat.completions.create(
    model="ernie-3.5-8k",
    messages=[
        {"role": "user", "content": "你好,我想知道明天北京的天气怎么样"},
        {'content': '', 'role': 'assistant', 'name': None, 'tool_calls': [{'id': '19eaa3faef0ca000', 'type': 'function', 'function': {'name': 'get_current_weather', 'arguments': '{"location": "北京", "time": "2024-12-14"}'}}], 'tool_call_id': None},
        {"role": "tool", "tool_call_id": "19exxxxx00", "name": "get_current_weather", "content": "{\"temperature\": \"20\", \"unit\": \"摄氏度\", \"description\": \"北京\"}"},
    ],
    tools=[{
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "天气查询工具",
            "parameters": {
                "properties": {
                    "location": {
                        "description": "地理位置,精确到区县级别",
                        "type": "string"
                    },
                    "time": {
                        "description": "时间,格式为YYYY-MM-DD",
                        "type": "string"
                    }
                },
                "required": ["location", "time"],
                "type": "object"
            }
        }
    }],
)

print(completion.json(ensure_ascii=False))

function call响应示例

  • 第一次响应
  • Python
{
	"id": "as-0bd3fqniat",
	"choices": [{
		"finish_reason": "tool_calls",
		"index": 0,
		"message": {
			"content": "",
			"role": "assistant",
			"name": null,
			"tool_calls": [{
				"id": "19eaa550a7344000",
				"type": "function",
				"function": {
					"name": "get_current_weather",
					"arguments": "{\"location\": \"北京\", \"time\": \"2024-12-14\"}"
				}
			}],
			"tool_call_id": null
		},
		"ban_round": null,
		"flag": 0
	}],
	"created": 1734078514,
	"model": "ernie-3.5-8k",
	"object": "chat.completion",
	"usage": {
		"completion_tokens": 26,
		"prompt_tokens": 7,
		"total_tokens": 33
	},
	"statistic": {
		"first_token_latency": 0,
		"request_latency": 2.197312,
		"total_latency": 2.557672722,
		"start_timestamp": 1734078512335.0,
		"avg_output_tokens_per_second": 10.165491376734478
	}
}
  • 第二次响应
  • Python
{
	"id": "as-1yunj9bnbx",
	"choices": [{
		"finish_reason": "normal",
		"index": 0,
		"message": {
			"content": "明天北京的天气温度是20摄氏度。请问您还有其他需要了解的吗?",
			"role": "assistant",
			"name": null,
			"tool_calls": null,
			"tool_call_id": null
		},
		"ban_round": null,
		"flag": 0
	}],
	"created": 1734078216,
	"model": "ernie-3.5-8k",
	"object": "chat.completion",
	"usage": {
		"completion_tokens": 15,
		"prompt_tokens": 26,
		"total_tokens": 41
	},
	"statistic": {
		"first_token_latency": 0,
		"request_latency": 2.704354,
		"total_latency": 2.936778522,
		"start_timestamp": 1734078212974.0,
		"avg_output_tokens_per_second": 5.107637463169924
	}
}

请求参数

Python SDK请求参数说明如下,Go SDK参数请参考Go SDK-对话Chat V2参数相关说明。

名称类型必填描述
modelstring模型ID,可选值参考本文支持模型列表
messagesList聊天上下文信息。说明:
(1)messages成员不能为空,1个成员表示单轮对话,多个成员表示多轮对话,例如:
· 1个成员示例,"messages": [ {"role": "user","content": "你好"}]
· 3个成员示例,"messages": [ {"role": "user","content": "你好"},{"role":"assistant","content":"需要什么帮助"},{"role":"user","content":"自我介绍下"}]
(2) 最后一个message为当前请求的信息,前面的message为历史对话信息
(3)messages的role说明:
· 第一条message的role必须是user或system
· 最后一条message的role必须是user
· 当第一条message的role为user,role值需要依次为user/function -> assistant -> user/function ...,即奇数位message的role值必须为user或function,偶数位message的role值为assistant,例如:
示例中message中的role值分别为user、assistant、user、assistant、user;奇数位(红框)message中的role值为user,即第1、3、5个message中的role值为user;偶数位(蓝框)值为assistant,即第2、4个message中的role值为assistant

image.png


· 当第一条message的role为system,role值需要依次为system -> user/function -> assistant -> user/function ...
(4)message中的content总长度不能超过对应model的输入字符限制和输入tokens限制,请查看各模型上下文长度说明
streambool是否以流式接口的形式返回数据,说明:
(1)beam search模型只能为false
(2)默认false
stream_optionsobject流式响应的选项,当字段stream为true时,该字段生效
temperaturefloat说明:
(1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定
(2)默认0.95,范围 (0, 1.0],不能为0
top_pfloat说明:
(1)影响输出文本的多样性,取值越大,生成文本的多样性越强
(2)默认0.7,取值范围 [0, 1.0]
penalty_scorefloat通过对已生成的token增加惩罚,减少重复生成的现象。说明:
(1)值越大表示惩罚越大
(2)默认1.0,取值范围:[1.0, 2.0]
max_completion_tokensint指定模型最大输出token数,说明:
(1)取值范围[2, 2048]
seedint说明:
(1)取值范围: (0,2147483647‌),会由模型随机生成,默认值为空
(2)如果指定,系统将尽最大努力进行确定性采样,以便使用相同seed和参数的重复请求返回相同的结果
stopList生成停止标识,当模型生成结果以stop中某个元素结尾时,停止文本生成。说明:
(1)每个元素长度不超过20字符
(2)最多4个元素
userstring表示最终用户的唯一标识符
frequency_penaltyfloat说明:
(1)正值根据迄今为止文本中的现有频率对新token进行惩罚,从而降低模型逐字重复同一行的可能性
(2)取值范围:[-2.0, 2.0]
(3)支持以下模型:
· ernie-speed-8k
· ernie-speed-128k
· ernie-speed-pro-128k
· ernie-lite-8k
· ernie-lite-pro-128k
· ernie-tiny-8k
· ernie-char-8k
· ernie-char-fiction-8k
presence_penaltyfloat说明:
(1)正值根据token记目前是否出现在文本中来对其进行惩罚,从而增加模型谈论新主题的可能性
(2)取值范围:[-2.0, 2.0]
(3)支持以下模型:
· ernie-speed-8k
· ernie-speed-128k
· ernie-speed-pro-128k
· ernie-lite-8k
· ernie-lite-pro-128k
· ernie-tiny-8k
· ernie-char-8k
· ernie-char-fiction-8k
toolsList(Tool)一个可触发函数的描述列表,支持模型请参考本文支持模型列表-是否支持function call功能
tool_choicestring / tool_choice说明:
(1)支持模型请参考本文支持模型列表-是否支持function call功能
(2)string类型,可选值如下:
· none:不希望模型调用任何function,只生成面向用户的文本消息
· auto:模型会根据输入内容自动决定是否调用函数以及调用哪些function
· required:希望模型总是调用一个或多个function
(3)当为tool_choice类型,指在函数调用场景下,提示大模型选择指定的函数,指定的函数名必须在tools中存在
parallel_tool_callsbool说明:
(1)支持模型请参考本文支持模型列表-是否支持function call功能
(2)可选值:
· true:表示开启函数并行调用,默认开启
· false:表示关闭函数并行调用
response_formatresponse_format指定响应内容的格式
retry_countint重试次数,默认1次
request_timeoutfloat请求超时时间,默认60秒
backoff_factorfloat请求重试参数,用于指定重试的策略,默认为0

message说明

名称类型必填描述
rolestring当前支持以下:
· user: 表示用户
· assistant: 表示对话助手
· system:表示人设
namestringmessage名
contentstring对话内容,说明:
(1)不能为空
(2)最后一个message对应的content不能为blank字符,如空格、"\n"、“\r”、“\f”等
tool_callsList[ToolCall]函数调用,function call场景下第一轮对话的返回,第二轮对话作为历史信息在message中传入
tool_call_idstring说明:
(1)当role=tool时,该字段必填
(2)模型生成的function call id,对应tool_calls中的tool_calls[].id
(3)调用方应该传递真实的、由模型生成id,否则效果有损

stream_options说明

名称类型必填
include_usagebool流式响应是否输出usage,说明:
· ture:是,设置为true时,在最后一个chunk会输出一个字段,这个chunk上的usage字段显示整个请求的token统计信息
· false:否,流式响应默认不输出usage

Tool 说明

名称类型必填描述
typestring工具类型,取值function
functionfunction函数说明

function说明

Tool中function说明如下

名称类型必填描述
namestring函数名
descriptionstring函数描述
parametersobject函数请求参数,JSON Schema 格式,参考JSON Schema描述

tool_choice说明

名称类型必填描述
typestring指定工具类型,固定值function
functionfunction指定要使用的函数

function说明

tool_choice中function说明如下

名称类型必填描述
namestring指定要使用的函数名

response_format说明

名称类型描述
typestring指定响应内容的格式,可选值:
· json_object:以json格式返回,可能出现不满足效果情况
· text:以文本格式返回,默认为text
· json_schema:以json_scheam规定的格式返回
json_schemaobjectjson_schema格式,请参考JSON Schema描述;当type为json_schema时,该参数必填

响应参数

名称类型描述
idstring本次请求的唯一标识,可用于排查问题
objectstring回包类型 chat.completion:多轮对话返回
createdint时间戳
modelstring模型ID
choicesobjectstream=false时,返回内容
choicessse_choicesstream=true时,返回内容
usageusagetoken统计信息,说明:
(1)同步请求默认返回
(2)流式请求默认不返回,当开启stream_options.include_usage=True时,会在最后一个chunk返回实际内容,其他chunk返回null

choices说明

当stream=false时,返回内容如下:

名称类型描述
indexintchoice列表中的序号
messagemessage响应信息,当stream=false时返回
finish_reasonstring输出内容标识,说明:
· normal:输出内容完全由大模型生成,未触发截断、替换
· stop:输出结果命中入参stop中指定的字段后被截断
· length:达到了最大的token数
· content_filter:输出内容被截断、兜底、替换为**等
· tool_calls:函数调用
flagint安全细分类型,说明:
当stream=false,flag值含义如下:
· 0或不返回:安全
· 1:低危不安全场景,可以继续对话
· 2:禁聊:不允许继续对话,但是可以展示内容
· 3:禁止上屏:不允许继续对话且不能上屏展示
· 4:撤屏
ban_roundint当flag 不为 0 时,该字段会告知第几轮对话有敏感信息;如果是当前问题,ban_round = -1

sse_choices说明

当stream=true时,返回内容如下:

名称类型描述
indexintchoice列表中的序号
deltadelta响应信息,当stream=true时返回
finish_reasonstring输出内容标识,说明:
· normal:输出内容完全由大模型生成,未触发截断、替换
· stop:输出结果命中入参stop中指定的字段后被截断· length:达到了最大的token数
· content_filter:输出内容被截断、兜底、替换为**等
· tool_calls:函数调用
flagint安全细分类型,说明:当stream=true时,返回flag表示触发安全
ban_roundint当flag 不为 0 时,该字段会告知第几轮对话有敏感信息;如果是当前问题,ban_round = -1

delta说明

名称类型描述
contentstring流式响应内容
tool_callsList[ToolCall]由模型生成的函数调用,包含函数名称,和调用参数

ToolCall说明

名称类型描述
idstringfunction call的唯一标识,由模型生成
typestring固定值function
functionfunctionfunction call的具体内容

function说明

名称类型描述
namestring函数名称
argumentsstring函数参数

usage说明

名称类型描述
prompt_tokensint问题tokens数(包含历史QA)
prompt_tokens_detailsint问题token详情
completion_tokensint回答tokens数
total_tokensint总tokens数

prompt_tokens_details说明

名称类型描述
search_tokensint触发检索增强以后膨胀的token;用户可以通过usage.prompt_tokens_details.search_tokens>0判断是否出发了检索增强,并且计算出发检索增强的次数

message说明

名称类型必填描述
rolestring当前支持以下:
· user: 表示用户
· assistant: 表示对话助手
· system:表示人设
namestringmessage名
contentstring对话内容,说明:
(1)不能为空
(2)最后一个message对应的content不能为blank字符,如空格、"\n"、“\r”、“\f”等
tool_callsList[ToolCall]函数调用,function call场景下第一轮对话的返回,第二轮对话作为历史信息在message中传入
tool_call_idstring说明:
(1)当role=tool时,该字段必填
(2)模型生成的function call id,对应tool_calls中的tool_calls[].id
(3)调用方应该传递真实的、由模型生成id,否则效果有损

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2275713.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

刚体变换矩阵的逆

刚体运动中的变换矩阵为: 求得变换矩阵的逆矩阵为: opencv应用 cv::Mat R; cv::Mat t;R.t(), -R.t()*t

<style lang=“scss“ scoped>: 这是更常见的写法,也是官方文档中推荐的写法

这两种写法在大多数情况下是没有区别的&#xff0c;它们都是 Vue.js 单文件组件 (.vue 文件) 中用来定义组件私有样式的方式。 两种写法&#xff1a; <style lang"scss" scoped>: 这是更常见的写法&#xff0c;也是官方文档中推荐的写法。<style scoped l…

ai,seo,关键词

什么是AI在SEO中的应用 在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;在搜索引擎优化&#xff08;SEO&#xff09;领域的应用正变得愈发重要。AI技术能够处理和分析大量的数据&#xff0c;通过识别用户行为和搜索模式&#xff0c;帮助优化网站内容和结构。…

git - 用SSH方式迁出远端git库

文章目录 git - 用SSH方式迁出远端git库概述笔记以gitee为例产生RSA密钥对 备注githubEND git - 用SSH方式迁出远端git库 概述 最近一段时间&#xff0c;在网络没问题的情况下&#xff0c;用git方式直接迁出git库总是会失败。 失败都是在远端, 显示RPC错误。 但是git服务器端…

slurm部署安装

slurm部署安装 管理节点和计算节点 在所有节点执行 安装系统工具 apt install -y build-essential curl wget munge将hosts文件 vim /etc/hostsxxx.xxx.xxx.xxx xxx分发到其他计算节点创建slurm用户 useradd -m slurm mkdir /var/spool/slurmd /var/spool/slurmctld chow…

初识Java 2

目录 一.方法&#xff08;函数&#xff09; 1.方法的定义 2.方法的调用过程 3.实参与形参的关系 4.方法的重载 5.方法签名&#xff08;了解&#xff09; 6.递归&#xff08;常用于数列&#xff0c;阶乘&#xff09; 二.数组 1.定义方法&#xff1a; 2.初始化&#xff…

react-quill 富文本组件编写和应用

index.tsx文件 import React, { useRef, useState } from react; import { Modal, Button } from antd; import RichEditor from ./RichEditor;const AnchorTouchHistory: React.FC () > {const editorRef useRef<any>(null);const [isModalVisible, setIsModalVis…

关于扫描模型 拓扑 和 传递贴图工作流笔记

关于MAYA拓扑和传递贴图的操作笔记 一、拓扑低模: 1、拓扑工作区位置: 1、准备出 目标 高模。 (高模的状态如上 ↑ )。 2、打开顶点吸附,和建模工具区,选择四边形绘制. 2、拓扑快捷键使…

【Rust自学】11.9. 单元测试

喜欢的话别忘了点赞、收藏加关注哦&#xff08;加关注即可阅读全文&#xff09;&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 11.9.1. 测试的分类 Rust把测试分为两类&#xff0c;一个是单元测试&#xff0c;一个是集成…

【竞技宝】CS2:HLTV2024选手排名TOP4-NiKo

北京时间2025年1月11日,HLTV年度选手排名正在持续公布中,今日凌晨正式公布了今年的TOP4选手为G2(目前已转为至Falcons)战队的NiKo。 选手简介 NiKo是一名来自波黑的CS职业选手,现年26岁。作为DOTA2饱负盛名的职业选手,NiKo在CS1.6时代就已经开始征战职业赛场。2012年,年仅15岁…

rom定制系列------小米max3安卓12 miui14批量线刷 默认开启usb功能选项 插电自启等

小米Max3是小米公司于2018年7月19日发布的机型。此机型后在没有max新型号。采用全金属一体机身设计&#xff0c;配备6.9英寸全面屏.八核处理器骁龙636&#xff0c;后置双摄像头1200万500万像素&#xff0c;前置800万像素.机型代码 &#xff1a;nitrogen.官方最终版为稳定版12.5…

Linux第一课:c语言 学习记录day06

四、数组 冒泡排序 两两比较&#xff0c;第 j 个和 j1 个比较 int a[5] {5, 4, 3, 2, 1}; 第一轮&#xff1a;i 0 n&#xff1a;n个数&#xff0c;比较 n-1-i 次 4 5 3 2 1 // 第一次比较 j 0 4 3 5 2 1 // 第二次比较 j 1 4 3 2 5 1 // 第三次比较 j 2 4 3 2 1 5 // …

Cline(原Claude Dev)开源的IDE AI插件,如何搭配OpenRouter实现cursor功能,Cline怎么使用

Cline&#xff08;原Claude Dev&#xff09;是一个开源的IDE AI插件&#xff0c;可以使用你的命令行界面和编辑器的人工智能助手。 你可以直接在VS Code编辑器进行安装。如果你使用过Cursor AI IDE的话&#xff0c;可以尝试最新发布的Cline3.1版本。 在OpenRouter上&#xff0…

arcgis的合并、相交、融合、裁剪、联合、标识操作的区别和使用

1、相交 需要输入两个面要素&#xff0c;最终得到的是两个输入面要素相交部分的结果面要素。 2、合并 合并能将两个单独存放的两个要素类的内容&#xff0c;汇集到一个要素类里面。 3、融合 融合能将一个要素类内的所有元素融合成一个整体。 4、裁剪 裁剪需要输入两个面要…

【Rust自学】11.7. 按测试的名称运行测试

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 11.7.1. 按名称运行测试的子集 如果想要选择运行的测试&#xff0c;就将测试的名称&#xff08;一个或多个&#xff09;作为cargo test的…

利用Java爬虫获取义乌购店铺所有商品列表:技术探索与实践

在当今数字化时代&#xff0c;数据的重要性不言而喻。对于采购商和市场分析师而言&#xff0c;能够快速获取并分析供应商店铺内的所有商品信息&#xff0c;是制定有效采购策略和市场分析的关键。义乌购作为国内知名的在线批发平台&#xff0c;拥有海量的商品数据。本文将介绍如…

An FPGA-based SoC System——RISC-V On PYNQ项目复现

本文参考&#xff1a; &#x1f449; 1️⃣ 原始工程 &#x1f449; 2️⃣ 原始工程复现教程 &#x1f449; 3️⃣ RISCV工具链安装教程 1.准备工作 &#x1f447;下面以LOCATION代表本地源存储库的安装目录&#xff0c;以home/xilinx代表在PYNQ-Z2开发板上的目录 ❗ 下载Vivad…

Photoshop PS批处理操作教程(批量修改图片尺寸、参数等)

前言 ‌Photoshop批处理的主要作用‌是通过自动化处理一系列相似的操作来同时应用于多张图片&#xff0c;从而节省时间和精力&#xff0c;提高工作效率。批处理功能特别适用于需要批量处理的任务&#xff0c;如图像尺寸调整、颜色校正、水印添加等‌。 操作步骤 1.创建动作 …

互联网架构变迁:从 TCP/IP “呼叫” 到 NDN “内容分发” 的逐浪之旅

本文将给出关于互联网架构演进的一个不同视角。回顾一下互联网的核心理论基础产生的背景&#xff1a; 左边是典型的集中控制通信网络&#xff0c;很容易被摧毁&#xff0c;而右边的网络则没有单点问题&#xff0c;换句话说它很难被全部摧毁&#xff0c;与此同时&#xff0c;分…

nvim 打造成可用的IDE(2)

上一个 文章写的太长了&#xff0c; 后来再写东西 就一卡一卡的&#xff0c;所以新开一个。 主要是关于 bufferline的。 之前我的界面是这样的。 这个图标很不舒服有。 后来发现是在这里进行配置。 我也不知道&#xff0c;这个配置 我是从哪 抄过来的。 测试结果&#xff1…