工具一:SDKMAN
注意,它的
sdk current只能查看由它安装的sdk。
若需把之前安装的加入管理,可以使用
sdk install java my-local-17 /home/user/my-jdk17
2026/4/13大约 1 分钟
注意,它的
sdk current只能查看由它安装的sdk。
若需把之前安装的加入管理,可以使用
sdk install java my-local-17 /home/user/my-jdk17
def normalize_descending_list(data):
if not data:
return []
max_val = data[0]
min_val = data[-1]
# 防止列表中所有数字都相同(导致除以零)
if max_val == min_val:
return [0.0] * len(data)
# 归一化计算
return [(x - min_val) / (max_val - min_val) for x in data]
两个异步例子。
若一个函数是async的,它await时,只会让出cpu,但没法说让它所在的项目中其它任务进行,对吗,也就是没法进行项目内并发(使用asyncio)。
若使用asyncio.gather()的话,则可以在项目内某个环节执行并发。
这种现象是因为一个项目除非使用threading ,否则它就是一条线顺序执行,也就是单线程
import json
with open("data.json", "r", encoding="utf-8") as f:
data = json.load(f)
print(type(data)) # 一般是 dict 或 list
print(data)
import json
def read_jsonl(path):
data = []
with open(path, "r", encoding="utf-8") as f:
for line in f:
line = line.strip()
if not line:
continue
data.append(json.loads(line))
return data
# 用法
records = read_jsonl("data.jsonl")
print(len(records))
print(records[0])
from openai import AsyncOpenAI
client = AsyncOpenAI()
async def gpt_chat(prompt, system_prompt=None, history_messages=[], model_name="openai/gpt-4o-mini"):
messages = []
if system_prompt:
messages.append({"role": "system", "content": system_prompt})
messages.extend(history_messages)
messages.append({"role": "user", "content": prompt})
completion = await client.chat.completions.create(
model=model_name,
messages=messages,
extra_body={}
)
return completion.choices[0].message.content
results = await asyncio.gather(
gpt_chat("Q1", sys_prompt),
gpt_chat("Q2", sys_prompt),
gpt_chat("Q3", sys_prompt),
)