SDK调用文心一言如何接入,文心一言API接入教程
一、前期准备
-
注册百度智能云账号:
- 前往百度智能云官网注册一个账号。这是接入文心一言API的基础。
-
了解API接口:
- 在百度智能云开放平台中,找到文心一言API的详情页,了解提供的API接口类型(如云端API、移动端API、离线版API等)及其功能特点。
- 根据应用场景和需求,选择适合的API接口。
二、创建应用并获取API密钥
-
登录百度智能云千帆控制台:
- 使用百度智能云账号登录千帆控制台。
-
创建应用:
- 在控制台中,点击“创建应用”按钮。
- 根据提示填写应用名称、描述等信息。
- 创建成功后,将获取到AppID、API Key、Secret Key等关键信息。
-
获取API密钥:
- 在应用详情页中查看并复制API Key和Secret Key。这两个密钥将用于后续调用API接口时的身份验证。
最后就是能过SDK调用
调用本接口,发起一次对话请求。
支持模型列表
模型名称 | 模型版本 | model 参数值 |
---|---|---|
ERNIE 4.0 | ERNIE-4.0-8K-Latest | ernie-4.0-8k-latest |
ERNIE 4.0 | ERNIE-4.0-8K-Preview | ernie-4.0-8k-preview |
ERNIE 4.0 | ERNIE-4.0-8K | ernie-4.0-8k |
ERNIE 4.0 Turbo | ERNIE-4.0-Turbo-8K-Latest | ernie-4.0-turbo-8k-latest |
ERNIE 4.0 Turbo | ERNIE-4.0-Turbo-8K-Preview | ernie-4.0-turbo-8k-preview |
ERNIE 4.0 Turbo | ERNIE-4.0-Turbo-8K | ernie-4.0-turbo-8k |
ERNIE 4.0 Turbo | ERNIE-4.0-Turbo-128K | ernie-4.0-turbo-128k |
ERNIE 3.5 | ERNIE-3.5-8K-Preview | ernie-3.5-8k-preview |
ERNIE 3.5 | ERNIE-3.5-8K | ernie-3.5-8k |
ERNIE 3.5 | ERNIE-3.5-128K | ernie-3.5-128k |
ERNIE Speed | ERNIE-Speed-8K | ernie-speed-8k |
ERNIE Speed | ERNIE-Speed-128K | ernie-speed-128k |
ERNIE Speed | ERNIE-Speed-Pro-128K | ernie-speed-pro-128k |
ERNIE Lite | ERNIE-Lite-8K | ernie-lite-8k |
ERNIE Lite | ERNIE-Lite-Pro-128K | ernie-lite-pro-128k |
ERNIE Tiny | ERNIE-Tiny-8K | ernie-tiny-8k |
ERNIE Character | ERNIE-Character-8K | ernie-char-8k |
ERNIE Character | ERNIE-Character-Fiction-8K | ernie-char-fiction-8k |
ERNIE-Novel-8K | ERNIE-Novel-8K | ernie-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
字段,指定平台支持预置服务的模型,调用示例如下。
from qianfan import Qianfanclient = Qianfan(# 方式一:使用安全认证AK/SK鉴权# 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk,如何获取请查看https://cloud.baidu.com/doc/Reference/s/9jwvz2egbaccess_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])
返回示例(非流式)
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
调用示例(流式)
from qianfan import Qianfanclient = Qianfan(# 方式一:使用安全认证AK/SK鉴权# 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk,如何获取请查看https://cloud.baidu.com/doc/Reference/s/9jwvz2egbaccess_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)
返回示例(流式)
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调用示例
- 第一次请求
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))
- 第二次请求
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响应示例
- 第一次响应
{"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}
}
- 第二次响应
{"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参数相关说明。
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
model | string | 是 | 模型ID,可选值参考本文支持模型列表 |
messages | List | 是 | 聊天上下文信息。说明: (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 · 当第一条message的role为system,role值需要依次为system -> user/function -> assistant -> user/function ... (4)message中的content总长度不能超过对应model的输入字符限制和输入tokens限制,请查看各模型上下文长度说明 |
stream | bool | 否 | 是否以流式接口的形式返回数据,说明: (1)beam search模型只能为false (2)默认false |
stream_options | object | 否 | 流式响应的选项,当字段stream为true时,该字段生效 |
temperature | float | 否 | 说明: (1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定 (2)默认0.95,范围 (0, 1.0],不能为0 |
top_p | float | 否 | 说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)默认0.7,取值范围 [0, 1.0] |
penalty_score | float | 否 | 通过对已生成的token增加惩罚,减少重复生成的现象。说明: (1)值越大表示惩罚越大 (2)默认1.0,取值范围:[1.0, 2.0] |
max_completion_tokens | int | 否 | 指定模型最大输出token数,说明: (1)取值范围[2, 2048] |
seed | int | 否 | 说明: (1)取值范围: (0,2147483647),会由模型随机生成,默认值为空 (2)如果指定,系统将尽最大努力进行确定性采样,以便使用相同seed和参数的重复请求返回相同的结果 |
stop | List | 否 | 生成停止标识,当模型生成结果以stop中某个元素结尾时,停止文本生成。说明: (1)每个元素长度不超过20字符 (2)最多4个元素 |
user | string | 否 | 表示最终用户的唯一标识符 |
frequency_penalty | float | 否 | 说明: (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_penalty | float | 否 | 说明: (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 |
tools | List(Tool) | 否 | 一个可触发函数的描述列表,支持模型请参考本文支持模型列表-是否支持function call功能 |
tool_choice | string / tool_choice | 否 | 说明: (1)支持模型请参考本文支持模型列表-是否支持function call功能 (2)string类型,可选值如下: · none:不希望模型调用任何function,只生成面向用户的文本消息 · auto:模型会根据输入内容自动决定是否调用函数以及调用哪些function · required:希望模型总是调用一个或多个function (3)当为tool_choice类型,指在函数调用场景下,提示大模型选择指定的函数,指定的函数名必须在tools中存在 |
parallel_tool_calls | bool | 否 | 说明: (1)支持模型请参考本文支持模型列表-是否支持function call功能 (2)可选值: · true:表示开启函数并行调用,默认开启 · false:表示关闭函数并行调用 |
response_format | response_format | 否 | 指定响应内容的格式 |
retry_count | int | 否 | 重试次数,默认1次 |
request_timeout | float | 否 | 请求超时时间,默认60秒 |
backoff_factor | float | 否 | 请求重试参数,用于指定重试的策略,默认为0 |
message说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
role | string | 是 | 当前支持以下: · user: 表示用户 · assistant: 表示对话助手 · system:表示人设 |
name | string | 否 | message名 |
content | string | 是 | 对话内容,说明: (1)不能为空 (2)最后一个message对应的content不能为blank字符,如空格、"\n"、“\r”、“\f”等 |
tool_calls | List[ToolCall] | 否 | 函数调用,function call场景下第一轮对话的返回,第二轮对话作为历史信息在message中传入 |
tool_call_id | string | 否 | 说明: (1)当role=tool时,该字段必填 (2)模型生成的function call id,对应tool_calls中的tool_calls[].id (3)调用方应该传递真实的、由模型生成id,否则效果有损 |
stream_options说明
| 名称 | 类型 | 必填 |
---|---|---|---|
include_usage | bool | 否 | 流式响应是否输出usage,说明: · ture:是,设置为true时,在最后一个chunk会输出一个字段,这个chunk上的usage字段显示整个请求的token统计信息 · false:否,流式响应默认不输出usage |
Tool 说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
type | string | 是 | 工具类型,取值function |
function | function | 是 | 函数说明 |
function说明
Tool中function说明如下
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
name | string | 是 | 函数名 |
description | string | 否 | 函数描述 |
parameters | object | 否 | 函数请求参数,JSON Schema 格式,参考JSON Schema描述 |
tool_choice说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
type | string | 是 | 指定工具类型,固定值function |
function | function | 是 | 指定要使用的函数 |
function说明
tool_choice中function说明如下
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
name | string | 是 | 指定要使用的函数名 |
response_format说明
名称 | 类型 | 描述 |
---|---|---|
type | string | 指定响应内容的格式,可选值: · json_object:以json格式返回,可能出现不满足效果情况 · text:以文本格式返回,默认为text · json_schema:以json_scheam规定的格式返回 |
json_schema | object | json_schema格式,请参考JSON Schema描述;当type为json_schema时,该参数必填 |
响应参数
名称 | 类型 | 描述 |
---|---|---|
id | string | 本次请求的唯一标识,可用于排查问题 |
object | string | 回包类型 chat.completion:多轮对话返回 |
created | int | 时间戳 |
model | string | 模型ID |
choices | object | stream=false时,返回内容 |
choices | sse_choices | stream=true时,返回内容 |
usage | usage | token统计信息,说明: (1)同步请求默认返回 (2)流式请求默认不返回,当开启stream_options.include_usage=True时,会在最后一个chunk返回实际内容,其他chunk返回null |
choices说明
当stream=false时,返回内容如下:
名称 | 类型 | 描述 |
---|---|---|
index | int | choice列表中的序号 |
message | message | 响应信息,当stream=false时返回 |
finish_reason | string | 输出内容标识,说明: · normal:输出内容完全由大模型生成,未触发截断、替换 · stop:输出结果命中入参stop中指定的字段后被截断 · length:达到了最大的token数 · content_filter:输出内容被截断、兜底、替换为**等 · tool_calls:函数调用 |
flag | int | 安全细分类型,说明: 当stream=false,flag值含义如下: · 0或不返回:安全 · 1:低危不安全场景,可以继续对话 · 2:禁聊:不允许继续对话,但是可以展示内容 · 3:禁止上屏:不允许继续对话且不能上屏展示 · 4:撤屏 |
ban_round | int | 当flag 不为 0 时,该字段会告知第几轮对话有敏感信息;如果是当前问题,ban_round = -1 |
sse_choices说明
当stream=true时,返回内容如下:
名称 | 类型 | 描述 |
---|---|---|
index | int | choice列表中的序号 |
delta | delta | 响应信息,当stream=true时返回 |
finish_reason | string | 输出内容标识,说明: · normal:输出内容完全由大模型生成,未触发截断、替换 · stop:输出结果命中入参stop中指定的字段后被截断· length:达到了最大的token数 · content_filter:输出内容被截断、兜底、替换为**等 · tool_calls:函数调用 |
flag | int | 安全细分类型,说明:当stream=true时,返回flag表示触发安全 |
ban_round | int | 当flag 不为 0 时,该字段会告知第几轮对话有敏感信息;如果是当前问题,ban_round = -1 |
delta说明
名称 | 类型 | 描述 |
---|---|---|
content | string | 流式响应内容 |
tool_calls | List[ToolCall] | 由模型生成的函数调用,包含函数名称,和调用参数 |
ToolCall说明
名称 | 类型 | 描述 |
---|---|---|
id | string | function call的唯一标识,由模型生成 |
type | string | 固定值function |
function | function | function call的具体内容 |
function说明
名称 | 类型 | 描述 |
---|---|---|
name | string | 函数名称 |
arguments | string | 函数参数 |
usage说明
名称 | 类型 | 描述 |
---|---|---|
prompt_tokens | int | 问题tokens数(包含历史QA) |
prompt_tokens_details | int | 问题token详情 |
completion_tokens | int | 回答tokens数 |
total_tokens | int | 总tokens数 |
prompt_tokens_details说明
名称 | 类型 | 描述 |
---|---|---|
search_tokens | int | 触发检索增强以后膨胀的token;用户可以通过usage.prompt_tokens_details.search_tokens>0判断是否出发了检索增强,并且计算出发检索增强的次数 |
message说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
role | string | 是 | 当前支持以下: · user: 表示用户 · assistant: 表示对话助手 · system:表示人设 |
name | string | 否 | message名 |
content | string | 是 | 对话内容,说明: (1)不能为空 (2)最后一个message对应的content不能为blank字符,如空格、"\n"、“\r”、“\f”等 |
tool_calls | List[ToolCall] | 否 | 函数调用,function call场景下第一轮对话的返回,第二轮对话作为历史信息在message中传入 |
tool_call_id | string | 否 | 说明: (1)当role=tool时,该字段必填 (2)模型生成的function call id,对应tool_calls中的tool_calls[].id (3)调用方应该传递真实的、由模型生成id,否则效果有损 |
相关文章:
SDK调用文心一言如何接入,文心一言API接入教程
一、前期准备 注册百度智能云账号: 前往百度智能云官网注册一个账号。这是接入文心一言API的基础。 了解API接口: 在百度智能云开放平台中,找到文心一言API的详情页,了解提供的API接口类型(如云端API、移动端API、离线…...
实战:FRP内网穿透部署-支持ssh、web访问
目录 1 准备工作2 公网服务器部署server端2.1 frps.ini配置 3 内网客户端部署client端3.1 frpc.ini配置(内网服务器01)3.2 frpc.ini配置(内网服务器02) 4 服务启动脚本4.1 公网服务器 server4.2 内网服务器 client 2 systemctl常见…...
基于Web的宠物医院看诊系统设计与实现(源码+定制+开发)在线预约平台、宠物病历管理、医生诊疗记录、宠物健康数据分析 宠物就诊预约、病历管理与健康分析
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...
Pytorch基础教程:从零实现手写数字分类
文章目录 1.Pytorch简介2.理解tensor2.1 一维矩阵2.2 二维矩阵2.3 三维矩阵 3.创建tensor3.1 你可以直接从一个Python列表或NumPy数组创建一个tensor:3.2 创建特定形状的tensor3.3 创建三维tensor3.4 使用随机数填充tensor3.5 指定tensor的数据类型 4.tensor基本运算…...
使用Flink-JDBC将数据同步到Doris
在现代数据分析和处理环境中,数据同步是一个至关重要的环节。Apache Flink和Doris是两个强大的工具,分别用于实时数据处理和大规模并行处理(MPP)SQL数据库。本文将介绍如何使用Flink-JDBC连接器将数据同步到Doris。 一、背景介绍…...
【深度学习】自编码器(Autoencoder, AE)
自编码器(Autoencoder, AE)是一种无监督学习模型,主要用于特征提取、数据降维、去噪和生成模型等任务。它的核心思想是通过将输入压缩到一个低维的潜在空间表示(编码过程),然后再从这个潜在表示重构输入&am…...
跨专业毕业论文写作
跨专业毕业论文写作是一项具有挑战性的任务,但通过合理的规划和方法,你可以顺利完成这篇论文。以下是一些关键步骤和建议,帮助你撰写一篇高质量的跨专业毕业论文。 一、确定研究方向和课题 选择与本科专业相关或感兴趣的研究方向:…...
在 Go语言中一个字段可以包含多种类型的值的设计与接种解决方案
在 Go 中,如果你希望一个字段可以包含多种类型的值,你可以使用以下几种方式来实现: ### 1. **使用空接口 (interface{})** Go 的空接口 interface{} 可以接受任何类型的值,因此,你可以将字段定义为一个空接口&#x…...
为AI聊天工具添加一个知识系统 之32 三“中”全“会”:推理式的ISA(父类)和IOS(母本)以及生成式CMN (双亲委派)之1
本文要点和问题 要点 三“中”全“会”:推理式的ISA的(父类-父类源码)和IOS的(母本-母类脚本)以及生成式 CMN (双亲委派-子类实例)。 数据中台三端架构的中间端(信息系统架构ISA :…...
手撕Transformer -- Day6 -- DecoderBlock
手撕Transformer – Day6 – DecoderBlock 目录 手撕Transformer -- Day6 -- DecoderBlockTransformer 网络结构图DecoderBlock 代码Part1 库函数Part2 实现一个解码器Block,作为一个类Part3 测试 参考 Transformer 网络结构图 Transformer 网络结构 DecoderBlock 代…...
Docker常用命令大全
Docker容器相关命令: 创建并启动容器: docker run:创建一个新的容器并运行一个命令。例如:docker run -d -p 8080:80 nginx这将后台(-d)运行一个Nginx容器,并映射宿主机的8080端口到容器的80端口。 列出容器&#x…...
【Linux探索学习】第二十五弹——动静态库:Linux 中静态库与动态库的详细解析
Linux学习笔记: https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言: 在 Linux 系统中,静态库和动态库是开发中常见的两种库文件类型。它们在编译、链接、内存管理以及程序的性能和可维护性方面有着…...
Vue 实现当前页面刷新的几种方法
以下是 Vue 中实现当前页面刷新的几种方法: 方法一:使用 $router.go(0) 方法 通过Vue Router进行重新导航,可以实现页面的局部刷新,而不丢失全局状态。具体实现方式有两种: 实现代码: <template&g…...
python mysql库的三个库mysqlclient mysql-connector-python pymysql如何选择,他们之间的区别
三者的区别 1. mysqlclient 特点: 是一个用于Python的MySQL数据库驱动程序,用于与MySQL数据库进行交互。 依赖于MySQL的本地库,因此在安装时需要确保系统上已安装了必要的依赖项,如libmysqlclient-dev等。 性能较好,…...
【可持久化线段树】 [SDOI2009] HH的项链 主席树(两种解法)
文章目录 1.题目描述2.思路3.解法一解法一代码 4.解法二解法二代码(版本一)解法二代码(版本二) 1.题目描述 原题:https://www.luogu.com.cn/problem/P1972 [SDOI2009] HH的项链 题目描述 HH 有一串由各种漂亮的贝壳…...
【C语言】线程----同步、互斥、条件变量
目录 3. 同步 3.1 概念 3.2 同步机制 3.3 函数接口 1. 同步 1.1 概念 同步(synchronization)指的是多个任务(线程)按照约定的顺序相互配合完成一件事情 1.2 同步机制 通过信号量实现线程间的同步 信号量:通过信号量实现同步操作;由信号量来决定…...
15. 三数之和【力扣】--三指针
三数之和 已解答 中等 相关标签 相关企业 提示 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#x…...
大数据学习(35)- spark- action算子
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦ᾑ…...
vim使用指南
🏝️专栏:计算机操作系统 🌅主页:猫咪-9527-CSDN博客 “欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。” 目录 一、Vim 的基本概念 1.Vim 的主要模式: 1.1普通模式 (Normal Mode) 1.2插入…...
Docker 镜像制作原理 做一个自己的docker镜像
一.手动制作镜像 启动容器进入容器定制基于容器生成镜像 1.启动容器 启动容器之前我们首先要有一个镜像,这个镜像可以是从docker拉取,例如:现在pull一个ubuntu镜像到本机。 docker pull ubuntu:22.04 我们接下来可以基于这个容器进行容器…...
基于Java+SpringBoot+Vue的前后端分离的在线BLOG网
基于JavaSpringBootVue的前后端分离的在线BLOG网 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接dz…...
Linux网络_套接字_UDP网络_TCP网络
一.UDP网络 1.socket()创建套接字 #include<sys/socket.h> int socket(int domain, int type, int protocol);domain (地址族): AF_INET网络 AF_UNIX本地 AF_INET:IPv4 地址族,适用于 IPv4 协议。用于网络通信AF_INET6:IPv6 地址族&a…...
Java学习教程,从入门到精通,JDBC驱动程序类型及语法知识点(91)
JDBC驱动程序类型及语法知识点 一、JDBC驱动程序类型 JDBC驱动程序主要有以下四种类型: 1. Type 1:JDBC - ODBC桥驱动程序(JDBC - ODBC Bridge Driver) 特点:这种驱动程序是Java与ODBC(Open Database C…...
YOLOv8从菜鸟到精通(二):YOLOv8数据标注以及模型训练
数据标注 前期准备 先打开Anaconda Navigator,点击Environment,再点击new(new是我下载anaconda的文件夹名称),然后点击创建 点击绿色按钮,并点击Open Terminal 输入labelimg便可打开它,labelimg是图像标注工具,在上篇…...
3D目标检测数据集——Nusence数据集
链接地址 [官网] nuScenes[arXiv] nuScenes: A multimodal dataset for autonomous driving[GitHub] nuScenes devkitnuScenes devkit教程数据集概述 2.1 数据采集 2.1.1 传感器配置 nuScenes的数据采集车辆为Renault Zoe迷你电动车,配备6个周视相机&#x...
网站收录入口提交的方法有哪些(网站收录的方式都有哪些)
网站被搜索引擎收录是获得流量和曝光的重要前提,以下为你介绍常见的网站收录方式: 搜索引擎提交入口 各大搜索引擎都设有专门的网站收录入口,供站长提交网站。例如百度搜索资源平台、谷歌搜索控制台等。以百度为例,在百度搜索资…...
移动端H5缓存问题
移动端页面缓存问题是指页面的静态资源(如图片、JS 和 CSS 文件)在浏览器中被缓存后,用户在下次访问时可以直接从本地获取缓存数据,而不需要每次都从服务器重新获取,不过这样可能会导致页面不能正确地更新或者加载最新…...
11-1.Android 项目结构 - androidTest 包与 test 包(单元测试与仪器化测试)
androidTest 包与 test 包 在 Android 项目中,androidTest 包与 test 包用于存放不同类型的测试代码的 1、测试类型 (1)androidTest 包 主要用于存放单元测试(Unit Tests)代码 单元测试是针对应用程序中的独立模块…...
计算机网络(五)——传输层
一、功能 传输层的主要功能是向两台主机进程之间的通信提供通用的数据传输服务。功能包括实现端到端的通信、多路复用和多路分用、差错控制、流量控制等。 复用:多个应用进程可以通过同一个传输层发送数据。 分用:传输层在接收数据后可以将这些数据正确分…...
ZCC9159 -7V 300mA 超低功耗高速 LDO
功能描述 ZCC9195是一款超低功耗并具有快速响应、关断快速放电功能的高速LDO。静态电流低至 0.8uA,输出电流最大为300mA。 ZCC9195具有输出过流保护、输出短路保护、温度保护等功能,确保芯片在异常工作条件 下不会损坏。 ZCC9195只需要1uF的陶瓷电容即…...
微信小程序实现个人中心页面
文章目录 1. 官方文档教程2. 编写静态页面3. 关于作者其它项目视频教程介绍 1. 官方文档教程 https://developers.weixin.qq.com/miniprogram/dev/framework/ 2. 编写静态页面 mine.wxml布局文件 <!--index.wxml--> <navigation-bar title"个人中心" ba…...
【C语言算法刷题】第7题
题目描述 一个XX产品行销总公司,只有一个boss,其有若干一级分销,一级分销又有若干二级分销,每个分销只有唯一的上级分销。 规定,每个月,下级分销需要将自己的总收入(自己的下级上交的…...
BERT与CNN结合实现糖尿病相关医学问题多分类模型
完整源码项目包获取→点击文章末尾名片! 使用HuggingFace开发的Transformers库,使用BERT模型实现中文文本分类(二分类或多分类) 首先直接利用transformer.models.bert.BertForSequenceClassification()实现文本分类 然后手动实现B…...
RocketMQ消息发送---源码解析
我们知道rocketMQ的消息发送支持很多特性,如同步发送,异步发送,oneWay发送,也支持超时机制,回调机制,并且能够保证消息的可靠性和消息发送的限流,底层使用netty框架等等,如此多的特性…...
机器学习06-正则化
机器学习06-正则化 文章目录 机器学习06-正则化0-核心逻辑脉络1-参考网址3-大模型训练中的正则化1.正则化的定义与作用2.常见的正则化方法及其应用场景2.1 L1正则化(Lasso)2.2 L2正则化(Ridge)2.3 弹性网络正则化(Elas…...
如何开放2375和2376端口供Docker daemon监听
Linux (以 Ubuntu 为例) 1. 修改 Docker 配置文件 打开 Docker 的配置文件 /etc/docker/daemon.json。如果该文件不存在,则可以创建一个新的。 bash sudo nano /etc/docker/daemon.json在配置文件中添加以下内容: json {"hosts": ["un…...
Vue.js组件开发-如何实现路由懒加载
在Vue.js应用中,路由懒加载是一种优化性能的技术,它允许在需要时才加载特定的路由组件,而不是在应用启动时加载所有组件。这样可以显著减少初始加载时间,提高用户体验。在Vue Router中,实现路由懒加载非常简单…...
rclone,云存储备份和迁移的瑞士军刀,千字常文解析,附下载链接和安装操作步骤...
一、什么是rclone? rclone是一个命令行程序,全称:rsync for cloud storage。是用于将文件和目录同步到云存储提供商的工具。因其支持多种云存储服务的备份,如Google Drive、Amazon S3、Dropbox、Backblaze B2、One Drive、Swift、…...
集成学习算法
目录 1.必要的导入 2.Bagging集成 3.基于matplotlib写一个函数对决策边界做可视化 4.总结图中结论 5.扩展说明 1.必要的导入 # To support both python 2 and python 3 from __future__ import division, print_function, unicode_literals# Common imports import numpy as np…...
vue3之pinia学习
最近查看了pinia这个状态管理管理,想跟大家一起学习下,下面是我的个人理解,希望对大家有帮助,我们开始吧! 第一步:安装pinia npm install pinia 第二步:创建pinia <script setup langts&…...
Flink (七): DataStream API (四) Watermarks
1. Event Time and Processing Time 1. 1 处理时间(Processing time) 处理时间是指执行相应操作的机器的系统时间。当流处理程序基于处理时间运行时,所有基于时间的操作(如时间窗口)将使用执行相应算子的机器的系统时…...
卷积神经05-GAN对抗神经网络
卷积神经05-GAN对抗神经网络 使用Python3.9CUDA11.8Pytorch实现一个CNN优化版的对抗神经网络 简单的GAN图片生成 CNN优化后的图片生成 优化模型代码对比 0-核心逻辑脉络 1)Anacanda使用CUDAPytorch2)使用本地MNIST进行手写图片训练3)…...
【原创】大数据治理入门(2)《提升数据质量:质量评估与改进策略》入门必看 高赞实用
提升数据质量:质量评估与改进策略 引言:数据质量的概念 在大数据时代,数据的质量直接影响到数据分析的准确性和可靠性。数据质量是指数据在多大程度上能够满足其预定用途,确保数据的准确性、完整性、一致性和及时性是数据质量的…...
GLM: General Language Model Pretraining with Autoregressive Blank Infilling论文解读
论文地址:https://arxiv.org/abs/2103.10360 参考:https://zhuanlan.zhihu.com/p/532851481 GLM混合了自注意力和masked注意力,而且使用了2D位置编码。第一维的含义是在PartA中的位置,如5 5 5。第二维的含义是在Span内部的位置&a…...
总结SpringBoot项目中读取resource目录下的文件多种方法
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…...
云原生第四次作业
下载 [rootopenEuler-1 ~]# wget https://archive.apache.org/dist/httpd/httpd-2.4.46.tar.gz 压缩 配置实验环境 [rootopenEuler-1 httpd-2.4.46]# yum -y install apr apr-devel cyrus-sasl-devel expat-devel libdb-devel openldap-devel apr-util-devel apr-util pcre-d…...
day10_Structured Steaming
文章目录 Structured Steaming一、结构化流介绍(了解)1、有界和无界数据2、基本介绍3、使用三大步骤(掌握)4.回顾sparkSQL的词频统计案例 二、结构化流的编程模型(掌握)1、数据结构2、读取数据源2.1 File Source2.2 Socket Source…...
设计模式-工厂模式/抽象工厂模式
工厂模式 定义 定义一个创建对象的接口,让子类决定实列化哪一个类,工厂模式使一个类的实例化延迟到其子类; 工厂方法模式是简单工厂模式的延伸。在工厂方法模式中,核心工厂类不在负责产品的创建,而是将具体的创建工作…...
【算法学习】——整数划分问题详解(动态规划)
🧮整数划分问题是一个较为常见的算法题,很多问题从整数划分这里出发,进行包装,形成新的题目,所以完全理解整数划分的解决思路对于之后的进一步学习算法是很有帮助的。 「整数划分」通常使用「动态规划」解决࿰…...
【新教程】Ubuntu 24.04 单节点安装slurm
背景 网上教程老旧,不适用。 详细步骤 1、安装slurm sudo apt install slurm-wlm slurm-wlm-doc -y检查是否安装成功: slurmd --version如果得到slurm-wlm 23.11.4,表明安装成功。 2、配置slurm。 使用命令: sudo vi /etc/s…...