AI提示词模版
blender
bl_info格式含义
bl_info = {
“name”: “选择模型边缘并执行焊接操作”,
“author”: “您的名字”,
“version”: (1, 0), # 使用元组来定义版本号,例如 (1, 0, 0)
“blender”: (2, 80, 0), # 最低兼容的 Blender 版本
“location”: “View3D > Sidebar > My Panel”, # 插件在界面中的位置
“description”: “一个让用户选择模型边缘并进行焊接的插件。”,
“warning”: “”, # 如果有任何重要警告,这里会被展示。没有则留空。
“wiki_url”: “”, # 插件文档或者网页的链接
“tracker_url”: “”, # 插件bug追踪链接
“support”: “COMMUNITY”, # 或者 “OFFICIAL” 根据插件的支持级别
“category”: “Object” # 插件分类,例如:”Object”, “Mesh”, “Animation”, 等等。
}
连接alpha到透明度
写一个适合高版本的blender插件,名称是:设置选择模型贴图把贴图alpha自动连到透明度通道。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”
连接颜色贴图
写一个适合高版本的blender插件,名称是:设置选中材质自动连接主材质的颜色通道。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”
翻转模型面朝向
写一个适合高版本的blender插件,名称是:翻转模型面朝向。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”
模型位置调整
写一个适合高版本的blender插件,名称是:模型位置调整插件,有几个选项,模型位置按照多个模型的平均值,模型位置按照最后一个模型位置,模型位置安装第一选择的位置。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”
模型排列
我要写一个blender插件吗,名字是 模型排列 ,可以让选中模型自动排列
模型重复检测
写一个适合高版本的blender插件,检查选中的对象是否大小一样,如果一样删除后只保留一个,添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”
删除没有材质的物件V3
写一个blender插件,检查选中的对象,如果它们的材质没有贴图,它将删除这些对象。删除没有贴图模型,位置在View3D > Sidebar > 这个路径下面。
设置选择法线贴图合理连接到法线通道v2
写一个适合高版本的blender插件,名称是:设置选择选择的任意贴图合理连接到法线通道,名称别冲突了。贴图颜色空间需要设置为,线性空间。并且将选中的贴图从颜色通道连接到法线贴图的颜色通道,再连接到界面中存在的BSDF的材质的法向通道。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”,不要设置bl_idname名称。需要有详细的注释,适当的汉化插件。材质本身就有Principled BSDF,不用添加Diffuse BSDF。添加bl_info信息。
设置选择模型属性V2
写一个适合高版本的blender插件,名称是:设置选择模型属性。其中有四个材质属性设置选项,blender Mode为Alpha clip,Shadow ModeAlpha clip。blender Mode为Alpha Hashed,Shadow ModeAlpha Hashed,背面剔除选项(Backface Culling),屏幕空间折射选项(Scareen Space Refration)。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”
设置选择贴图alpha通道自动连到透明度通道 v2
写一个适合高版本的blender插件,名称是:设选择模型会自动执行把颜色贴图的alpha通道自动连到父材质的透明度通道。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”
设置选中材质自动连接主材质的颜色通道
写一个适合高版本的blender插件,名称是:设置选中材质自动连接主材质的颜色通道。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”
FBX导出
写一个适合高版本的blender插件,名称是:可以将模型以fbx格式导出,可以选择选中导出,或者全部导出,支持多个版本fbx:2015–2021。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blend临时图片查看保存
写一个适合高版本的blender插件,能查看blender临时生成的全部纹理,我要获取全部临时图片,点击按钮可以保存在.blend文件旁边的temp文件夹内。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
OBJ批量导入
写一个适合高版本的blender插件,名称是:可以批量导入obj格式模型,单独选择obj导入,支持多个版本fbx:2015–2021。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
模型的三角面转换成四边面,检查如果是uv边缘不要转换成四边面
写一个适合高版本的blender插件,名称是:把模型的三角面转换成四边面
,转换过程中要检查如果是uv边缘不要转换成四边面。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”
dds图片预览插件
写一个适合高版本的blender插件,名称是:blender的dds格式的图片节点界面的预览插件。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
写一个模型整体平移插件
写一个适合高版本的blender插件,名称是:选中平移缩放旋转的插件。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blenderUV复制黏贴插件
写一个适合高版本的blender UV复制黏贴插件,名称是:UV复制黏贴插件。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender选择模型边缘,点击命令焊接插件
#V1
写一个适合高版本的blender高级选择和焊接工具,名称是:选择非流形边缘,并根据法线和距离合并顶点插件。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
#v2
写一个适合高版本的blender高级选择和焊接工具,名称是:按钮一:选择非流形边缘,按钮二:根据法线和重合位置重合的顶点。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender选择选中的点合并点法线方向,不焊接点插件
写一个适合高版本的blender选择选中的点合并点法线方向,不焊接点插件,名称是:blender选择选中的点合并点法线方向,不焊接点插件。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender材质删除没有贴图节点
写一个适合高版本的blender材质删除没有贴图节点插件,名称是:blender材质删除没有贴图节点插件。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender点焊接插件
写一个适合高版本的blender点焊接插件,名称是:点焊接插件。根据设置按钮一:设置距离和设置按钮二:设置点法线角度,按钮三:点击后焊接选中点。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender图像纹理 删除
写一个适合高版本的blender 图像纹理 删除,名称是:图像纹理删除插件。有2个功能,按钮一:设置贴图大小。按钮二:点击后删除不满足大小的图像纹理。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender节点保存工具
写一个适合高版本的blender 的材质节点保存工具,名称是:材质节点保存工具。有这几个功能,按钮一:保存节点组合。按钮二:加载节点。选项框,可以选择保存的节点组合,这个组合可以修改名字,调整顺序,数据保存为csv。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender节点保存工具
改成通过__init__.py运行,这是代码
bl_info = {
“name”: “材质节点保存工具”,
“description”: “将所有材质的节点数据保存到CSV文件”,
“author”: “Your Name”,
“version”: (1, 0),
“blender”: (2, 93, 0), # 指定Blender的最低版本
“location”: “文件 > 导出 > 材质节点保存工具 (.csv)”,
“category”: “Import-Export”,
}
from . import addon
def register():
addon.register()
def unregister():
addon.unregister()
blender模型分离工具
写一个适合高版本的blender 的模型分离工具,名称是:模型分离工具。根据选中的模型不是关联的方法分离。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender点法线焊接工具
写一个适合高版本的blender 的blender点法线焊接工具,名称是:blender点法线焊接工具。根据选中的点,自动平均点法线的值。需要添加插件元数据, 里面参数:“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender材质贴图清理工具
写一个适合高版本的blender材质贴图清理工具,名称是:blender材质贴图清理工具。自动删除没有使用的材质贴图资源, 里面参数:bl_info = {},“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender删除没有分UV的模型
写一个适合高版本的blender删除没有分UV的模型插件,名称是:blender删除没有分UV的模型插件。自动删除选中的模型UV值,X轴和Y轴大于设定值的模型,有两个按钮,一个设置参数值如0.5选项,一个是执行按钮, 里面参数:bl_info = {},“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender重新关联贴图格式
写一个适合高版本的blender可以重新关联贴图格式插件,名称是:重新关联贴图格式插件。根据选中的模型,有一个选项,可以输入贴图格式如tga、png、dds、jpg,点击执行按钮,替换路径下能找到的贴图路径,并输出当前不同格式贴图数量。点击统计可以 里面参数:bl_info = {},“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender选择相同材质的贴图名称
写一个适合高版本的blender可以选择相同材质的贴图名称插件。根据选中的模型,读取模型的材质贴图名称,再搜索场景显示的其他模型,点击按钮1:选择相同贴图模型,可以选中全部贴图名称一样的材质。点击按钮2:选择相同相似贴图模型,只要有1张贴图是一样的都会选择。点击按钮3:合并选中模型材质。里面参数:bl_info = {},“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender导入PSK插件
写一个适合高版本的bblender导入PSK插件。支持psk文件导入,并能找到相关材质。里面参数:bl_info = {},“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender提取.mat的材质属性,自动连接相关模型材质的贴图
写一个适合高版本的blender提取.mat的材质属性,自动连接相关模型材质的贴图。有一个设置搜索材质路径选项,输入搜索路径可以搜相关文件夹的.mat,有一个搜索按钮,执行后会匹配最相关的mat文件,帮助关联选中的模型,例如:
pc_sp_00_lower_sk_chn.001对应的是pc_sp_00–1_lower_mi.mat
pc_sp_00_shoulder_sk.001对应的是pc_sp_00–1_shouder_mi.mat
mat材质参数是这样的
Diffuse=pc_sp_00_helmet_d
Normal=pc_sp_00_helmet_n
Specular=pc_sp_00_helmet_s
Emissive=pc_sp_00_helmet_e
Other[0]=pc_sp_00_helmet_cm
Other[1]=pc_sp_00_helmet_m
需要找到里面的值对应的贴图,可能是dds、png、tga
里面参数:bl_info = {},“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
模型气球膨胀插件.py
写一个适合高版本的模型气球膨胀插件。能控制模型沿着法线方向膨胀,中间比较缓和的膨胀比较强,这个值可以调整,一个是圆滑按钮可以设置圆滑值,缓和锐利边缘。里面参数:bl_info = {},“location”: “View3D > Sidebar > My Panel”, bl_label = “我的面板”,bl_category = “My Panel”。并做好每个函数功能的注释。
blender Viewer预览节点,导出选中贴图节点效果图片
bl_info = {
“name”: “Viewer预览节点,导出选中贴图节点效果图片”,
“author”: “Your Name”,
“version”: (1, 6),
“blender”: (2, 80, 0),
“location”: “Node Editor > Add > Output > Texture Viewer”,
“description”: “添加Viewer节点,这个节点有预览功能,并可以导出选中的贴图节点效果为图片”,
“warning”: “”,
“doc_url”: “”,
“category”: “Node”,
}
在bpy.context.area.ui_type = ‘ShaderNodeTree’界面选中节点导出当前节点调整的效果
根据这个需求生成一个blender插件,说中文,中文注释
bl_info = {
“name”: “Viewer预览节点,导出选中贴图节点效果图片”,
“author”: “Your Name”,
“version”: (1, 6),
“blender”: (2, 80, 0),
“location”: “Node Editor > Add > Output > Texture Viewer”,
“description”: “添加Viewer节点,这个节点有预览功能,并可以导出选中的贴图节点效果为图片。保存最后贴图节点效果,输出时候可以设置保存贴图尺寸,默认为1024*1024
“,
“warning”: “”,
“doc_url”: “”,
“category”: “Node”,
}
在bpy.context.area.ui_type = ‘ShaderNodeTree’界面选中节点导出当前节点调整的效果
根据这个需求生成一个blender插件,说中文,中文注释
max
其他工具
pdf书签复制脚本(book1提取文件bookmarks.txt写入到book2.pdf)
帮我生成一个python脚本:pdf书签添加脚本。能把book1.pdf书签复制到book2.pdf,输出到book2_out.pdf
我有多级书签,需要检测是否多级书签
#文件存储路径
G:\programming\python\pdfCopy_directory
pip uninstall PyMuPDF
pip uninstall fitz
#1read_book1Output_bookmark安装环境
pip install PyPDF2
pip install PyMuPDF
pip install PyMuPDF==1.22.3
pip install fitz
pip install starlette==0.27.0
pip install frontend
pip install unidecode
python 1read_book1Output_bookmark.py
python 2read_bookmark_Output_book2_out.py
conda create –p ./venv3.10.11 python=3.10.11 –y
# 激活环境
activate ./venv3.10.11
fitz
pdfrw
json文件翻译
写一个python调用腾讯翻译api,翻译localization.json文件。只翻译注释的 英文翻译的部分,如果有中文翻译器请不要翻译
# 创建conda环境
conda create –p ./venv3.10.11 python=3.10.11 –y
# 激活环境
activate ./venv3.10.11
#安装环境(告诉pip在当前目录下查找需要安装的软件包)
pip3 install torch torchvision torchaudio ––index–url https://download.pytorch.org/whl/cu118
pip install –e . –i https://mirrors.aliyun.com/pypi/simple/
pip install –r requirements.txt –i https://mirrors.aliyun.com/pypi/simple/
pip install –r environment.yaml
pip install tencentcloud–sdk–python
python TXJsonTranslate.py
用bat怎么启动这个命令 net use * /delete /yes
#V1要列出当前所有的网络连接,您可以在脚本中使用 `net use` 命令,它会显示所有已经映射的网络驱动器。接着,您可以使用 `net use * /delete` 来断开所有的连接。下面是一个简单的例子,这个脚本会先列出所有的连接,然后询问用户是否要断开这些连接:
@echo off
echo 正在显示所有网络连接...
net use
echo.
set /p choice=是否要断开上述所有连接?(Y/N):
if /i “%choice%”==“y” (
net use * /delete /yes
) else (
echo 操作已取消。
)
pause
#V2网盘图标还显示
#V2如果您删除了网络驱动器连接,但网络驱动器的图标仍然显示在资源管理器中,这可能是由于资源管理器没有及时刷新。您可以尝试刷新资源管理器窗口,或者重新启动资源管理器进程。下面是一个批处理脚本示例,这个脚本在断开所有网络驱动器连接后,会重新启动资源管理器进程:
@echo off
echo 正在显示所有网络连接...
net use
echo.
set /p choice=是否要断开上述所有连接?(Y/N):
if /i “%choice%”==“y” (
net use * /delete /yes
echo 重新启动资源管理器...
taskkill /f /im explorer.exe
start explorer.exe
) else (
echo 操作已取消。
)
pause
GradioUI界面开发
import os
from FbxCommon import InitializeSdkObjects, LoadScene
import fbx
import json
import contextlib
def count_skeletons(node):
“””递归计算骨骼数量”””
count = 0
attribute = node.GetNodeAttribute()
if attribute:
if attribute.GetAttributeType() == fbx.FbxNodeAttribute.eSkeleton:
count = 1 # 是骨骼节点时计数+1
for i in range(node.GetChildCount()): # 遍历子节点
count += count_skeletons(node.GetChild(i))
return count
def get_all_tga_textures(scene):
“””遍历所有Video节点来查找.tga文件”””
tga_textures = []
criteria = fbx.FbxCriteria.ObjectType(fbx.FbxVideo.ClassId) # 使用FbxCriteria
video_count = scene.GetSrcObjectCount(criteria)
for i in range(video_count):
video = scene.GetSrcObject(criteria, i)
# 转换FbxString为Python字符串
filename = str(video.GetFileName())
if video and filename.endswith(‘.tga’):
tga_textures.append(os.path.basename(filename))
return tga_textures
def analyze_uv_channels(mesh):
“””分析和打印网格的UV通道信息,包括UV坐标的象限分布”””
uv_channel_info = []
for uv_index in range(mesh.GetUVLayerCount()):
uv_set_name = f”UVChannel_{uv_index + 1}“
uv_element = mesh.GetLayer(uv_index).GetUVs()
if not uv_element:
continue # 如果该层没有UVs,跳过
# 初始化象限计数器
quadrant_counts = {“Q1”: 0, “Q2”: 0, “Q3”: 0, “Q4”: 0, “Other”: 0}
# 直接数组用于存储UV数据
uv_data = uv_element.GetDirectArray()
for i in range(uv_data.GetCount()):
u, v = uv_data.GetAt(i)
# 判断UV坐标所在的象限
if 0 <= u < 1 and 0 <= v < 1:
quadrant = “Q1”
elif 1 <= u < 2 and 0 <= v < 1:
quadrant = “Q2”
elif 0 <= u < 1 and 1 <= v < 2:
quadrant = “Q3”
elif 1 <= u < 2 and 1 <= v < 2:
quadrant = “Q4”
else:
quadrant = “Other”
quadrant_counts[quadrant] += 1
uv_channel_info.append({
“uv_set_name”: uv_set_name,
“uv_count”: uv_data.GetCount(),
“quadrant_counts”: quadrant_counts
})
return uv_channel_info
def analyze_smoothing_groups(mesh):
“””分析和打印网格的光滑组信息”””
smoothing_group_info = []
# 检查是否存在光滑组层元素
if mesh.GetElementSmoothing():
smoothing_element = mesh.GetElementSmoothing()
for i in range(mesh.GetPolygonCount()):
smoothing_group = smoothing_element.GetDirectArray().GetAt(i)
smoothing_group_info.append(smoothing_group)
else:
print(“该网格没有光滑组信息。”)
return smoothing_group_info
def print_mesh_info(node, indent=0):
“””递归打印节点和网格信息,包括光滑组和UV通道分析”””
indent_str = ” “ * indent
node_name = node.GetName()
node_attrib = node.GetNodeAttribute()
if node_attrib and node_attrib.GetAttributeType() == fbx.FbxNodeAttribute.eMesh:
mesh = node_attrib
vertices_count = mesh.GetControlPointsCount()
poly_count = mesh.GetPolygonCount()
# 分析光滑组信息
smoothing_group_info = analyze_smoothing_groups(mesh)
smoothing_groups = set(smoothing_group_info) # 使用集合去除重复的光滑组ID
# 分析UV通道信息
uv_channel_info = analyze_uv_channels(mesh)
print(f”{indent_str}网格名称: {node_name}“)
print(f”{indent_str}顶点数: {vertices_count}, 面数: {poly_count}“)
print(f”{indent_str}光滑组数量: {len(smoothing_groups)}“)
if smoothing_groups:
print(f”{indent_str}光滑组ID: {‘, ‘.join(map(str, smoothing_groups))}“)
else:
print(f”{indent_str}无光滑组信息”)
# 打印UV通道信息
for uv_info in uv_channel_info:
print(f”{indent_str} UV通道: {uv_info[‘uv_set_name’]}, 坐标数量: {uv_info[‘uv_count’]}“)
for quadrant, count in uv_info[‘quadrant_counts’].items():
print(f”{indent_str} {quadrant}: {count}“)
# 递归处理子节点
for i in range(node.GetChildCount()):
print_mesh_info(node.GetChild(i), indent + 1)
collected_data = []
def print_and_collect(*args):
global collected_data
collected_data.append(args)
print(*args)
# 执行导入和定义count_skeletons等函数
print_and_collect(“这是信息”, {“key”: “value”})
if __name__ == “__main__”:
# 初始化SDK并加载场景
sdk_manager, scene = InitializeSdkObjects()
filepath = “./npc0044_skinV3.FBX”
if LoadScene(sdk_manager, scene, filepath):
print(“成功加载文件:”, filepath)
# 收集并打印.tga贴图信息
tga_textures = get_all_tga_textures(scene)
print(f”.tga贴图数量: {len(tga_textures)}“)
if tga_textures:
print(f”.tga贴图名称: {‘, ‘.join(tga_textures)}“)
# 打印网格和UV通道信息
print(“\n遍历场景节点信息:”)
print_mesh_info(scene.GetRootNode())
# 统计并打印骨骼数量
skeleton_count = count_skeletons(scene.GetRootNode())
print(f”骨骼数量: {skeleton_count}“)
with open(‘data.json’, ‘w’) as f:
json.dump(collected_data, f, ensure_ascii=False, indent=4)
else:
print(“加载文件时出错:”, filepath)
# 清理SDK
sdk_manager.Destroy()
根据这个代码版本生成一个GradioUI
标签页1:检查界面>加载默认预设/自定义预设>指定检查文件目录>执行检查命令>文件类型检查>资源规范检查>
输出检查结果:
1.输出文字反馈
2.报错图片展示
3.下载报错json文件
检查界面>加载默认预设/自定义预设>指定资源导入引擎路径目录(读取需要导入的资源情况
1.引擎选项:unity、UE4(设置版本)
2.路径输入设置(设置路径)
3.设置输出分辨率(设置分辨率)
4.根据已有的贴图自动设置材质(设置材质类型选项)
5.需要根据贴图大小是否添加后缀功能,如1024分辨率需要添加_1024)
>执行导入命令>unity、UE资源导出工具>输出文字反馈
标签页2:预设界面(默认提供场景和角色预设方案)>配置自定义的文件夹检查规则(命名格式对应的关键字和格式,如:
_N,_M,_D,_B
.tga,.png)>Unity/UE资源导出工具规则(1.设置指定的材质选项
2.关联好指定材质和贴图对应的匹配方式)>
1.保存预设
2.下载预设
claude AI输出结果
需要加上对比面板,1.输出面数建议 小于4000面=合理范围内,2.4000–6000=略高于合理范围,3.大于6000,面数超过最大要求
再加上输出结果总结,1和2输出面数符合要求,3输出面数不符合
内网ChatGPT对话平台修改
import gradio as gr
import requests
import json
import datetime
api_url = “http://47.253.97.14:8380/chat/completions”
api_key = “22” # 使用你的AuthKey
# 模型名称映射
model_mapping = {
“Azure_GPT3_5”: “gpt-3.5-turbo”,
“Azure_GPT4”: “gpt-4”
}
# 全局变量,用于跟踪tokens和成本
tokens_stats = {
“gpt-3.5-turbo”: {“tokens”: 0, “cost”: 0},
“gpt-4”: {“tokens”: 0, “cost”: 0}
}
# 模型价格(每万词组的价格)
model_prices = {
“gpt-3.5-turbo”: 1/95200, # 1元可购买的tokens数量
“gpt-4”: 1/2400
}
def update_tokens_and_cost(model_selected, tokens_used):
“””根据模型和使用的tokens数量更新统计数据和成本。”””
model_key = model_mapping[model_selected] # 使用映射获得内部使用的模型键
if model_key in tokens_stats:
tokens_stats[model_key][“tokens”] += tokens_used
price_per_token = model_prices[model_key]
tokens_stats[model_key][“cost”] += tokens_used * price_per_token
# 将统计数据写入本地文件
with open(“tokens_stats.txt”, “w”) as file:
file.write(json.dumps(tokens_stats, indent=4))
def chat(input_text, history, model_select):
headers = {
“Content-Type”: “application/json”,
“Authorization”: api_key
}
data = {
“model”: model_select, # 使用用户选择的模型
“messages”: [
{“role”: “system”, “content”: “You are a helpful assistant.”},
{“role”: “user”, “content”: input_text}
],
“temperature”: 0.7,
“stream”: False,
“max_tokens”: 4096
}
response = requests.post(api_url, headers=headers, json=data)
if response.status_code == 200:
result = response.json()
answer = result[“choices”][0][“message”][“content”]
history.append((input_text, answer))
# 假设API响应中包含tokens的使用数量
tokens_used = result.get(“usage”, {}).get(“total_tokens”, 0)
update_tokens_and_cost(model_select, tokens_used)
else:
history.append((input_text, f”Error: {response.status_code}“))
print(“Error Response:”, response.text)
return history, “”
with gr.Blocks(css=“.chatbot { height: 500px }”) as demo:
gr.Markdown(“# 内网ChatGPT对话平台”)
with gr.Row():
with gr.Column():
model_select = gr.Dropdown([“Azure_GPT3_5”, “Azure_GPT4”], label=“选择模型”)
chatbot = gr.Chatbot([], elem_id=“chatbot”)
input_box = gr.Textbox(placeholder=“在此输入你的消息…”, show_label=False)
input_box.submit(chat, [input_box, chatbot, model_select], [chatbot, input_box])
demo.launch()
需要在这个版本上修改,最下面添加一个窗口显示统计情况
读取tokens_stats.txt文件
这个数据可以显示价格情况
再下面有个按钮可以刷新本地数据
Chrome的js脚本
这是Chrome的js脚本
需要根据网站分析找到的资源和未拥有的资源,并提示是否添加未拥有资源,同意后进入没有拥有的资源路径下自动模拟点击Add to My Library添加到自己的库中
这是按钮
<span class=“fabkit-Button-label”>Add to My Library</span>
这是类似资源
<div class=“fabkit-Typography-ellipsisWrapper”>Junkyard</div>
这是代码