Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
db_gpt
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linyangyang
db_gpt
Commits
52ab7331
Commit
52ab7331
authored
Aug 12, 2024
by
于飞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
同义词提交
parent
8b0030b8
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
272 additions
and
0 deletions
+272
-0
__init__.py
dbgpt/app/apps/vadmin/word/__init__.py
+0
-0
crud.py
dbgpt/app/apps/vadmin/word/crud.py
+112
-0
__init__.py
dbgpt/app/apps/vadmin/word/models/__init__.py
+10
-0
similar.py
dbgpt/app/apps/vadmin/word/models/similar.py
+20
-0
__init__.py
dbgpt/app/apps/vadmin/word/params/__init__.py
+1
-0
similar.py
dbgpt/app/apps/vadmin/word/params/similar.py
+28
-0
__init__.py
dbgpt/app/apps/vadmin/word/schemas/__init__.py
+0
-0
similar.py
dbgpt/app/apps/vadmin/word/schemas/similar.py
+51
-0
views.py
dbgpt/app/apps/vadmin/word/views.py
+50
-0
No files found.
dbgpt/app/apps/vadmin/word/__init__.py
0 → 100644
View file @
52ab7331
dbgpt/app/apps/vadmin/word/crud.py
0 → 100644
View file @
52ab7331
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2022/2/24 10:21
# @File : crud.py
# @IDE : PyCharm
# @desc : 增删改查
from
typing
import
Any
from
redis.asyncio
import
Redis
from
fastapi
import
UploadFile
from
sqlalchemy.exc
import
StatementError
from
sqlalchemy.orm
import
joinedload
,
aliased
from
sqlalchemy.orm.strategy_options
import
_AbstractLoad
,
contains_eager
from
dbgpt.app.apps.core.exception
import
CustomException
from
fastapi.encoders
import
jsonable_encoder
from
sqlalchemy
import
select
,
false
,
and_
from
dbgpt.app.apps.core.crud
import
DalBase
from
sqlalchemy.ext.asyncio
import
AsyncSession
from
dbgpt.app.apps.core.validator
import
vali_telephone
# from dbgpt.app.apps.utils.file.aliyun_oss import AliyunOSS, BucketConf
from
dbgpt.app.apps.utils.excel.import_manage
import
ImportManage
,
FieldType
from
dbgpt.app.apps.utils.excel.write_xlsx
import
WriteXlsx
# from dbgpt.app.apps.utils.send_email import EmailSender
# from dbgpt.app.apps.utils.sms.reset_passwd import ResetPasswordSMS
from
dbgpt.app.apps.utils.tools
import
test_password
from
.
import
models
,
schemas
from
.params.similar
import
SimilarParams
from
.schemas.similar
import
SimilarIn
from
dbgpt.app.apps.config
import
settings
from
dbgpt.app.apps.utils.excel.excel_manage
import
ExcelManage
from
dbgpt.app.apps.system
import
crud
as
vadmin_system_crud
# from dbgpt.app.apps.vadmin.help import models as vadmin_help_models
import
copy
from
dbgpt.app.apps.utils
import
status
from
datetime
import
datetime
class
SimilarDal
(
DalBase
):
def
__init__
(
self
,
db
:
AsyncSession
):
super
(
SimilarDal
,
self
)
.
__init__
()
self
.
db
=
db
self
.
model
=
models
.
similar
.
VadminWordSimilar
self
.
schema
=
schemas
.
similar
.
SimilarSchemas
async
def
test_session_cache
(
self
):
"""
SQLAlchemy 会话(Session)缓存机制:
当你通过一个会话查询数据库时,SQLAlchemy 首先检查这个对象是否已经在会话缓存中。如果是,它会直接从缓存中返回对象,而不是从数据库重新加载。
在一个会话中,对于具有相同主键的实体,会话缓存确保只有一个唯一的对象实例。这有助于维护数据的一致性。
会话(Session)缓存:https://blog.csdn.net/k_genius/article/details/135491059
:return:
"""
print
(
"==================================会话缓存===================================="
)
await
self
.
test_session_cache1
()
async
def
test_session_cache1
(
self
):
"""
SQLAlchemy 会话(Session)缓存机制:
当你通过一个会话查询数据库时,SQLAlchemy 首先检查这个对象是否已经在会话缓存中。如果是,它会直接从缓存中返回对象,而不是从数据库重新加载。
在一个会话中,对于具有相同主键的实体,会话缓存确保只有一个唯一的对象实例。这有助于维护数据的一致性。
会话(Session)缓存:https://blog.csdn.net/k_genius/article/details/135491059
示例:会话缓存
:return:
"""
# 第一次查询
sql1
=
select
(
models
.
similar
.
VadminWordSimilar
)
.
where
(
models
.
similar
.
VadminWordSimilar
.
id
==
1
)
queryset1
=
await
self
.
db
.
scalars
(
sql1
)
similar1
=
queryset1
.
unique
()
.
first
()
if
similar1
is
None
:
print
(
'similar1 is None'
)
else
:
print
(
f
"编号:{similar1.id} 词条:{similar1.word_name} 近义词:{similar1.similar_name} "
)
async
def
create_similar_data
(
self
,
data
:
SimilarIn
,
v_options
:
list
[
_AbstractLoad
]
=
None
,
v_return_obj
:
bool
=
False
,
v_schema
:
Any
=
None
)
->
Any
:
"""
创建近义词
:param data:
:param v_options:
:param v_return_obj:
:param v_schema:
:return:
"""
if
data
is
None
:
print
(
'SimilarIn is None'
)
else
:
print
(
f
"词条:{data.word_name} 近义词:{data.similar_name} "
)
obj
=
self
.
model
()
obj
.
word_name
=
data
.
word_name
obj
.
similar_name
=
data
.
similar_name
#await self.flush(obj)
#return await self.out_dict(obj, v_options, v_return_obj, v_schema)
self
.
db
.
add
(
obj
)
await
self
.
db
.
commit
()
return
None
dbgpt/app/apps/vadmin/word/models/__init__.py
0 → 100644
View file @
52ab7331
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2022/7/7 13:41
# @File : __init__.py
# @IDE : PyCharm
# @desc : 简要说明
from
.similar
import
VadminWordSimilar
dbgpt/app/apps/vadmin/word/models/similar.py
0 → 100644
View file @
52ab7331
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2022/7/7 13:41
# @File : user.py
# @IDE : PyCharm
# @desc : 同义词模型
from
datetime
import
datetime
from
sqlalchemy.orm
import
relationship
,
Mapped
,
mapped_column
from
sqlalchemy
import
Column
,
DateTime
,
Integer
,
String
,
Text
,
func
from
dbgpt.app.apps.db.db_base
import
BaseModel
class
VadminWordSimilar
(
BaseModel
):
__tablename__
=
"vadmin_word_similar"
__table_args__
=
({
'comment'
:
'同义词表'
})
word_name
:
Mapped
[
str
]
=
mapped_column
(
String
(
100
),
index
=
True
,
nullable
=
False
,
comment
=
"词条"
)
similar_name
:
Mapped
[
str
]
=
mapped_column
(
String
(
100
),
index
=
True
,
nullable
=
False
,
comment
=
"近义词"
)
\ No newline at end of file
dbgpt/app/apps/vadmin/word/params/__init__.py
0 → 100644
View file @
52ab7331
from
.similar
import
SimilarParams
dbgpt/app/apps/vadmin/word/params/similar.py
0 → 100644
View file @
52ab7331
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2021/10/18 22:19
# @File : user.py
# @IDE : PyCharm
# @desc : 查询参数-类依赖项
"""
类依赖项-官方文档:https://fastapi.tiangolo.com/zh/tutorial/dependencies/classes-as-dependencies/
"""
from
fastapi
import
Depends
,
Query
from
dbgpt.app.apps.core.dependencies
import
Paging
,
QueryParams
class
SimilarParams
(
QueryParams
):
"""
列表分页
"""
def
__init__
(
self
,
word_name
:
str
|
None
=
Query
(
None
,
title
=
"词条"
),
similar_name
:
str
|
None
=
Query
(
None
,
title
=
"近义词"
),
):
self
.
word_name
=
(
"like"
,
word_name
)
self
.
similar_name
=
(
"like"
,
similar_name
)
dbgpt/app/apps/vadmin/word/schemas/__init__.py
0 → 100644
View file @
52ab7331
dbgpt/app/apps/vadmin/word/schemas/similar.py
0 → 100644
View file @
52ab7331
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2021/10/18 22:19
# @File : user.py
# @IDE : PyCharm
# @desc : pydantic 模型,用于数据库序列化操作
from
datetime
import
datetime
from
pydantic
import
BaseModel
,
ConfigDict
,
field_validator
from
pydantic_core.core_schema
import
FieldValidationInfo
class
SimilarSchemas
(
BaseModel
):
word_name
:
str
|
None
=
""
similar_name
:
str
|
None
=
""
is_delete
:
int
|
None
=
0
create_datetime
:
datetime
|
None
=
None
update_datetime
:
datetime
|
None
=
None
delete_datetime
:
datetime
|
None
=
None
class
SimilarIn
(
SimilarSchemas
):
"""
创建近义词
"""
word_name
:
str
|
None
=
""
similar_name
:
str
|
None
=
""
is_delete
:
int
|
None
=
0
create_datetime
:
datetime
|
None
=
None
update_datetime
:
datetime
|
None
=
None
delete_datetime
:
datetime
|
None
=
None
class
SimilarOut
(
SimilarSchemas
):
word_name
:
str
|
None
=
""
similar_name
:
str
|
None
=
""
is_delete
:
int
|
None
=
0
create_datetime
:
datetime
|
None
=
None
update_datetime
:
datetime
|
None
=
None
delete_datetime
:
datetime
|
None
=
None
class
SimilarUpdate
(
BaseModel
):
"""
更新近义词信息
"""
word_name
:
str
|
None
=
""
similar_name
:
str
|
None
=
""
is_delete
:
int
|
None
=
0
create_datetime
:
datetime
|
None
=
None
update_datetime
:
datetime
|
None
=
None
delete_datetime
:
datetime
|
None
=
None
dbgpt/app/apps/vadmin/word/views.py
0 → 100644
View file @
52ab7331
from
redis.asyncio
import
Redis
from
fastapi
import
APIRouter
,
Depends
,
Body
,
UploadFile
,
Request
from
dbgpt.app.apps.utils.response
import
SuccessResponse
from
dbgpt.app.apps.vadmin.auth.utils.current
import
AllUserAuth
,
FullAdminAuth
,
OpenAuth
from
dbgpt.app.apps.vadmin.auth.utils.validation.auth
import
Auth
from
dbgpt.app.apps.vadmin.word.models.similar
import
VadminWordSimilar
from
dbgpt.app.apps.vadmin.word.params.similar
import
SimilarParams
from
dbgpt.app.apps.vadmin.word.schemas.similar
import
SimilarSchemas
,
SimilarIn
from
dbgpt.app.apps.vadmin.word
import
crud
router
=
APIRouter
()
###########################################################
# 同义词管理
###########################################################
@
router
.
get
(
"/similar"
,
summary
=
"获取同义词列表"
)
async
def
get_similar
(
auth
:
Auth
=
Depends
(
OpenAuth
())):
model
=
VadminWordSimilar
print
(
f
"编号:{model.id} 近义词:{model.word_name}"
)
await
crud
.
SimilarDal
(
auth
.
db
)
.
test_session_cache
()
datas
=
[]
return
SuccessResponse
(
datas
,
count
=
1
)
@
router
.
post
(
"/create_similar"
,
summary
=
"创建同义词"
)
async
def
create_similar
(
data
:
Request
,
auth
:
Auth
=
Depends
(
OpenAuth
())):
#async def create_similar(data: SimilarIn, auth: Auth = Depends(FullAdminAuth(permissions=["auth.user.create"]))):
if
data
is
None
:
print
(
'SimilarIn is None'
)
else
:
print
(
f
"req词条:{data.query_params['word_name']} req近义词:{data.query_params['similar_name']} "
)
data
:
SimilarIn
data
.
word_name
=
data
.
query_params
[
'word_name'
]
data
.
similar_name
=
data
.
query_params
[
'similar_name'
]
data
.
is_delete
=
0
data
.
create_datetime
=
''
data
.
update_datetime
=
''
data
.
delete_datetime
=
''
await
crud
.
SimilarDal
(
auth
.
db
)
.
create_similar_data
(
data
=
data
)
datas
=
[]
return
SuccessResponse
(
datas
,
count
=
1
)
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment