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
a59352e2
Commit
a59352e2
authored
Sep 14, 2024
by
于飞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加聊天历史资源代码
parent
f793c556
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
230 additions
and
0 deletions
+230
-0
__init__.py
dbgpt/app/apps/vadmin/chathistory/__init__.py
+0
-0
crud.py
dbgpt/app/apps/vadmin/chathistory/crud.py
+80
-0
__init__.py
dbgpt/app/apps/vadmin/chathistory/models/__init__.py
+1
-0
chathistory.py
dbgpt/app/apps/vadmin/chathistory/models/chathistory.py
+20
-0
__init__.py
dbgpt/app/apps/vadmin/chathistory/params/__init__.py
+1
-0
chathistory.py
dbgpt/app/apps/vadmin/chathistory/params/chathistory.py
+30
-0
__init__.py
dbgpt/app/apps/vadmin/chathistory/schemas/__init__.py
+1
-0
chathistory.py
dbgpt/app/apps/vadmin/chathistory/schemas/chathistory.py
+52
-0
views.py
dbgpt/app/apps/vadmin/chathistory/views.py
+45
-0
No files found.
dbgpt/app/apps/vadmin/chathistory/__init__.py
0 → 100644
View file @
a59352e2
dbgpt/app/apps/vadmin/chathistory/crud.py
0 → 100644
View file @
a59352e2
#!/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_
,
update
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
.models.chathistory
import
VadminChatHistory
from
.params.chathistory
import
ChatHistoryParams
from
.schemas.chathistory
import
ChatHistorySchemas
,
ChatHistoryIn
,
ChatHistoryUpdate
,
ChatHistoryInDic
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
import
copy
from
dbgpt.app.apps.utils
import
status
from
datetime
import
datetime
from
typing
import
List
class
ChatHistoryDal
(
DalBase
):
def
__init__
(
self
,
db
:
AsyncSession
):
super
(
ChatHistoryDal
,
self
)
.
__init__
()
self
.
db
=
db
self
.
model
=
VadminChatHistory
self
.
schema
=
ChatHistoryInDic
async
def
create_data
(
self
,
data
:
ChatHistorySchemas
,
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
:
raise
CustomException
(
"data is None!"
,
code
=
status
.
HTTP_ERROR
)
"""
unique = await self.get_data(conv_uid=data.conv_uid, v_return_none=True)
if unique:
raise CustomException("会话已存在!", code=status.HTTP_ERROR)
"""
print
(
f
"-------打印会话ID----->:{data.conv_uid}"
)
obj
=
self
.
model
()
obj
.
conv_uid
=
data
.
conv_uid
obj
.
message_medias
=
data
.
message_medias
await
self
.
flush
(
obj
)
return
await
self
.
out_dict
(
obj
,
v_options
,
v_return_obj
,
v_schema
)
dbgpt/app/apps/vadmin/chathistory/models/__init__.py
0 → 100644
View file @
a59352e2
dbgpt/app/apps/vadmin/chathistory/models/chathistory.py
0 → 100644
View file @
a59352e2
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2022/7/7 13:41
# @File : chathistory.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
VadminChatHistory
(
BaseModel
):
__tablename__
=
"vadmin_chat_history"
__table_args__
=
({
'comment'
:
'聊天历史资源表'
})
conv_uid
:
Mapped
[
str
]
=
mapped_column
(
String
(
255
),
index
=
True
,
unique
=
False
,
nullable
=
False
,
comment
=
"会话ID"
)
message_medias
:
Mapped
[
str
]
=
mapped_column
(
Text
(
length
=
2
**
31
-
1
),
index
=
True
,
nullable
=
False
,
comment
=
"聊天历史资源数据"
)
\ No newline at end of file
dbgpt/app/apps/vadmin/chathistory/params/__init__.py
0 → 100644
View file @
a59352e2
dbgpt/app/apps/vadmin/chathistory/params/chathistory.py
0 → 100644
View file @
a59352e2
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2021/10/18 22:19
# @File : chathistory.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
ChatHistoryParams
(
QueryParams
):
"""
列表分页
"""
def
__init__
(
self
,
conv_uid
:
str
|
None
=
Query
(
None
,
title
=
"会话ID"
),
message_medias
:
str
|
None
=
Query
(
None
,
title
=
"聊天历史资源数据"
),
params
:
Paging
=
Depends
()
):
super
()
.
__init__
(
params
)
self
.
conv_uid
=
conv_uid
self
.
message_medias
=
(
"like"
,
message_medias
)
dbgpt/app/apps/vadmin/chathistory/schemas/__init__.py
0 → 100644
View file @
a59352e2
from
.chathistory
import
ChatHistoryIn
\ No newline at end of file
dbgpt/app/apps/vadmin/chathistory/schemas/chathistory.py
0 → 100644
View file @
a59352e2
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2021/10/18 22:19
# @File : chathistory.py
# @IDE : PyCharm
# @desc : pydantic 模型,用于数据库序列化操作
from
datetime
import
datetime
from
pydantic
import
BaseModel
,
ConfigDict
,
field_validator
from
pydantic_core.core_schema
import
FieldValidationInfo
class
ChatHistorySchemas
(
BaseModel
):
conv_uid
:
str
|
None
=
""
message_medias
:
str
|
None
=
""
is_delete
:
int
|
None
=
0
create_datetime
:
datetime
|
None
=
None
update_datetime
:
datetime
|
None
=
None
delete_datetime
:
datetime
|
None
=
None
class
ChatHistoryInDic
(
ChatHistorySchemas
):
model_config
=
ConfigDict
(
from_attributes
=
True
)
id
:
int
conv_uid
:
str
|
None
=
""
message_medias
:
str
|
None
=
""
class
ChatHistoryIn
(
ChatHistorySchemas
):
"""
创建
"""
conv_uid
:
str
|
None
=
""
message_medias
:
str
|
None
=
""
class
ChatHistoryOut
(
ChatHistorySchemas
):
conv_uid
:
str
|
None
=
""
message_medias
:
str
|
None
=
""
is_delete
:
int
|
None
=
0
create_datetime
:
datetime
|
None
=
None
update_datetime
:
datetime
|
None
=
None
delete_datetime
:
datetime
|
None
=
None
class
ChatHistoryUpdate
(
ChatHistorySchemas
):
"""
更新
"""
conv_uid
:
str
|
None
=
""
message_medias
:
str
|
None
=
""
dbgpt/app/apps/vadmin/chathistory/views.py
0 → 100644
View file @
a59352e2
from
redis.asyncio
import
Redis
from
fastapi
import
APIRouter
,
Depends
,
Body
,
UploadFile
,
Request
from
dbgpt.app.apps.utils.response
import
SuccessResponse
,
ErrorResponse
from
dbgpt.app.apps.vadmin.auth.utils.current
import
AllUserAuth
,
FullAdminAuth
,
OpenAuth
from
dbgpt.app.apps.vadmin.auth.utils.validation.auth
import
Auth
from
.
import
schemas
,
crud
,
models
from
dbgpt.app.apps.vadmin.chathistory.models.chathistory
import
VadminChatHistory
from
dbgpt.app.apps.vadmin.chathistory.params.chathistory
import
ChatHistoryParams
from
dbgpt.app.apps.vadmin.chathistory.schemas.chathistory
import
ChatHistorySchemas
,
ChatHistoryIn
,
ChatHistoryUpdate
from
dbgpt.app.apps.vadmin.chathistory
import
crud
from
fastapi.encoders
import
jsonable_encoder
from
...core.dependencies
import
IdList
router
=
APIRouter
()
###########################################################
# 聊天记录资源管理
###########################################################
@
router
.
get
(
"/get_chat_history"
,
summary
=
"获取聊天历史资源列表"
)
async
def
get_chat_history
(
para
:
ChatHistoryParams
=
Depends
(),
auth
:
Auth
=
Depends
(
OpenAuth
())):
print
(
f
"---打印输入参数--->:{para.dict()}"
)
v_schema
=
schemas
.
chathistory
.
ChatHistoryInDic
datas
,
count
=
await
crud
.
ChatHistoryDal
(
auth
.
db
)
.
get_datas
(
**
para
.
dict
(),
v_schema
=
v_schema
,
v_return_count
=
True
)
return
SuccessResponse
(
datas
,
count
=
count
)
@
router
.
post
(
"/create_chat_history"
,
summary
=
"创建聊天历史资源"
)
async
def
create_chat_history
(
qdata
:
Request
,
auth
:
Auth
=
Depends
(
OpenAuth
())):
if
qdata
is
None
:
print
(
'create_chat_history is None'
)
else
:
print
(
f
"req会话ID:{qdata.query_params['conv_uid']} req会话历史资源:{qdata.query_params['message_medias']} "
)
simi_data
=
ChatHistorySchemas
()
simi_data
.
conv_uid
=
qdata
.
query_params
[
'conv_uid'
]
simi_data
.
message_medias
=
qdata
.
query_params
[
'message_medias'
]
return
SuccessResponse
(
await
crud
.
ChatHistoryDal
(
auth
.
db
)
.
create_data
(
data
=
simi_data
))
\ 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