update
This commit is contained in:
parent
6610457f8b
commit
e2e68ccd8b
@ -12,6 +12,8 @@ from cryptoai.models.user_question import UserQuestionManager
|
|||||||
from cryptoai.models.token import TokenManager
|
from cryptoai.models.token import TokenManager
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
from cryptoai.utils.db_manager import get_db
|
from cryptoai.utils.db_manager import get_db
|
||||||
|
from cryptoai.models.user import UserManager
|
||||||
|
|
||||||
class AnalysisHistoryRequest(BaseModel):
|
class AnalysisHistoryRequest(BaseModel):
|
||||||
symbol: str
|
symbol: str
|
||||||
content: str
|
content: str
|
||||||
@ -200,6 +202,11 @@ async def get_conversation_messages(conversation_id: str,
|
|||||||
async def chat(request: ChatRequest,
|
async def chat(request: ChatRequest,
|
||||||
current_user: dict = Depends(get_current_user),
|
current_user: dict = Depends(get_current_user),
|
||||||
session: Session = Depends(get_db)):
|
session: Session = Depends(get_db)):
|
||||||
|
|
||||||
|
# 检查用户积分
|
||||||
|
if current_user["points"] < 20:
|
||||||
|
raise HTTPException(status_code=400, detail="您的积分不足,请先充值。")
|
||||||
|
|
||||||
payload = {
|
payload = {
|
||||||
"inputs" : {},
|
"inputs" : {},
|
||||||
"query": request.message,
|
"query": request.message,
|
||||||
@ -227,6 +234,10 @@ async def chat(request: ChatRequest,
|
|||||||
status_code=response.status_code,
|
status_code=response.status_code,
|
||||||
detail=f"Failed to get response from Dify API: {response.text}"
|
detail=f"Failed to get response from Dify API: {response.text}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# 扣除用户积分
|
||||||
|
manager = UserManager(session)
|
||||||
|
manager.consume_user_points(current_user["id"], 20)
|
||||||
|
|
||||||
# 获取response的stream
|
# 获取response的stream
|
||||||
def stream_response():
|
def stream_response():
|
||||||
|
|||||||
@ -17,7 +17,7 @@ sys.path.append(parent_dir)
|
|||||||
from cryptoai.agents.crypto_agent import CryptoAgent
|
from cryptoai.agents.crypto_agent import CryptoAgent
|
||||||
from cryptoai.agents.gold_agent import GoldAgent
|
from cryptoai.agents.gold_agent import GoldAgent
|
||||||
from cryptoai.utils.config_loader import ConfigLoader
|
from cryptoai.utils.config_loader import ConfigLoader
|
||||||
|
from cryptoai.tasks.user import task_run
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
@ -35,6 +35,8 @@ def task_start():
|
|||||||
schedule.every().day.at("16:00").do(CryptoAgent().start_agent)
|
schedule.every().day.at("16:00").do(CryptoAgent().start_agent)
|
||||||
schedule.every().day.at("20:00").do(CryptoAgent().start_agent)
|
schedule.every().day.at("20:00").do(CryptoAgent().start_agent)
|
||||||
|
|
||||||
|
schedule.every().day.at("00:00").do(task_run)
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
schedule.run_pending()
|
schedule.run_pending()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|||||||
22
cryptoai/tasks/user.py
Normal file
22
cryptoai/tasks/user.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
from cryptoai.models.user import User
|
||||||
|
from cryptoai.utils.db_manager import get_db_context, SessionLocal
|
||||||
|
from sqlalchemy.orm import Session
|
||||||
|
import logging
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
def task_run():
|
||||||
|
try:
|
||||||
|
session = SessionLocal()
|
||||||
|
users = session.query(User).filter(User.points < 100).all()
|
||||||
|
for user in users:
|
||||||
|
user.points = 100
|
||||||
|
session.commit()
|
||||||
|
logger.info(f"用户 {user.mail} 积分复位成功")
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"用户积分复位失败: {e}")
|
||||||
|
finally:
|
||||||
|
if session:
|
||||||
|
session.close()
|
||||||
|
|
||||||
@ -4,7 +4,7 @@ services:
|
|||||||
cryptoai-task:
|
cryptoai-task:
|
||||||
build: .
|
build: .
|
||||||
container_name: cryptoai-task
|
container_name: cryptoai-task
|
||||||
image: cryptoai:0.0.16
|
image: cryptoai:0.0.17
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- ./cryptoai/data:/app/cryptoai/data
|
- ./cryptoai/data:/app/cryptoai/data
|
||||||
@ -29,7 +29,7 @@ services:
|
|||||||
cryptoai-api:
|
cryptoai-api:
|
||||||
build: .
|
build: .
|
||||||
container_name: cryptoai-api
|
container_name: cryptoai-api
|
||||||
image: cryptoai-api:0.1.38
|
image: cryptoai-api:0.1.39
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- "8000:8000"
|
- "8000:8000"
|
||||||
|
|||||||
18
test.py
18
test.py
@ -4,19 +4,7 @@ import json
|
|||||||
from time import sleep
|
from time import sleep
|
||||||
from cryptoai.models.token import TokenManager
|
from cryptoai.models.token import TokenManager
|
||||||
from cryptoai.utils.db_manager import get_db_context
|
from cryptoai.utils.db_manager import get_db_context
|
||||||
|
from cryptoai.tasks.user import task_run
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
task_run()
|
||||||
symbols = get_binance_api().get_all_symbols()
|
|
||||||
# for symbol in symbols:
|
|
||||||
# # 移除 symbol 中的 USDT
|
|
||||||
# symbol = symbol.replace('USDT', '')
|
|
||||||
# print(symbol)
|
|
||||||
|
|
||||||
session = get_db_context()
|
|
||||||
manager = TokenManager(session)
|
|
||||||
|
|
||||||
for symbol in symbols:
|
|
||||||
base_asset = symbol.split('USDT')[0]
|
|
||||||
quote_asset = 'USDT'
|
|
||||||
|
|
||||||
manager.create_token(symbol,base_asset, quote_asset)
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user