add api tool

This commit is contained in:
xie7654
2025-07-11 11:00:37 +08:00
parent bd9f9c39e3
commit ec30340b43
12 changed files with 534 additions and 7 deletions

View File

@@ -0,0 +1,105 @@
# Generated by Django 5.2.1 on 2025-07-11 02:56
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("ai", "0002_alter_aiapikey_api_key_alter_aiapikey_create_time_and_more"),
]
operations = [
migrations.CreateModel(
name="Tool",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"remark",
models.CharField(
blank=True,
db_comment="备注",
help_text="备注",
max_length=256,
null=True,
verbose_name="备注",
),
),
(
"creator",
models.CharField(
blank=True,
db_comment="创建人",
help_text="创建人",
max_length=64,
null=True,
verbose_name="创建人",
),
),
(
"modifier",
models.CharField(
blank=True,
db_comment="修改人",
help_text="修改人",
max_length=64,
null=True,
verbose_name="修改人",
),
),
(
"update_time",
models.DateTimeField(
auto_now=True,
db_comment="修改时间",
help_text="修改时间",
null=True,
verbose_name="修改时间",
),
),
(
"create_time",
models.DateTimeField(
auto_now_add=True,
db_comment="创建时间",
help_text="创建时间",
null=True,
verbose_name="创建时间",
),
),
(
"is_deleted",
models.BooleanField(
db_comment="是否软删除",
default=False,
verbose_name="是否软删除",
),
),
("name", models.CharField(max_length=128, verbose_name="工具名称")),
(
"description",
models.CharField(
blank=True, max_length=256, null=True, verbose_name="工具描述"
),
),
("status", models.SmallIntegerField(verbose_name="状态")),
],
options={
"verbose_name": "AI 工具",
"verbose_name_plural": "AI 工具",
"db_table": "ai_tool",
},
),
migrations.AlterModelOptions(
name="aimodel",
options={"verbose_name": "模型配置", "verbose_name_plural": "模型配置"},
),
]

View File

@@ -59,3 +59,18 @@ class AIModel(CoreModel):
def __str__(self):
return self.name
class Tool(CoreModel):
""" AI 工具表 """
name = models.CharField(max_length=128, verbose_name="工具名称")
description = models.CharField(max_length=256, null=True, blank=True, verbose_name="工具描述")
status = models.SmallIntegerField(verbose_name="状态")
class Meta:
db_table = "ai_tool"
verbose_name = "AI 工具"
verbose_name_plural = verbose_name
def __str__(self):
return self.name

View File

@@ -6,8 +6,8 @@ from . import views
router = routers.DefaultRouter()
router.register(r'ai_api_key', views.AIApiKeyViewSet)
router.register(r'ai_model', views.AIModelViewSet)
router.register(r'tool', views.ToolViewSet)
urlpatterns = [
path('', include(router.urls)),
]

View File

@@ -1,7 +1,9 @@
__all__ = [
'AIApiKeyViewSet',
'AIModelViewSet',
'ToolViewSet',
]
from ai.views.ai_api_key import AIApiKeyViewSet
from ai.views.ai_model import AIModelViewSet
from ai.views.ai_model import AIModelViewSet
from ai.views.tool import ToolViewSet

24
backend/ai/views/tool.py Normal file
View File

@@ -0,0 +1,24 @@
from ai.models import Tool
from utils.serializers import CustomModelSerializer
from utils.custom_model_viewSet import CustomModelViewSet
class ToolSerializer(CustomModelSerializer):
"""
AI 工具 序列化器
"""
class Meta:
model = Tool
fields = '__all__'
read_only_fields = ['id', 'create_time', 'update_time']
class ToolViewSet(CustomModelViewSet):
"""
AI 工具 视图集
"""
queryset = Tool.objects.filter(is_deleted=False).order_by('-id')
serializer_class = ToolSerializer
filterset_fields = ['id', 'remark', 'creator', 'modifier', 'is_deleted', 'name', 'description', 'status']
search_fields = ['name'] # 根据实际字段调整
ordering_fields = ['create_time', 'id']
ordering = ['-create_time']