# 导入必要库
import requests # 用于发送HTTP请求
import json # 用于处理JSON数据
from config import API_KEY # 从配置文件读取密钥
def get_stock_data(code):
'''模拟获取股票实时数据(正式环境需替换为东方财富API)'''
# 示例数据,实际应调用东方财富接口如:https://quote.eastmoney.com/sh600519.html
return {
'name': '贵州茅台',
'code': code,
'price': 1820.50,
'change_percent': ' 1.8%',
'volume': '12.3万手'
}
def generate_analysis(prompt, stock_code='600519'):
'''调用DeepSeek生成分析报告'''
# 步骤1:获取股票数据
stock = get_stock_data(stock_code)
# 步骤2:构建提示词模板
system_prompt = f'''【金融分析师角色设定】 你是一名持证金融分析师,需要根据以下实时数据回答问题:
- 股票名称:{stock['name']}
- 股票代码:{stock['code']}
- 当前价格:{stock['price']}元
- 今日涨跌:{stock['change_percent']}
- 成交量:{stock['volume']}
用户问题:{prompt}
要求:
1. 分点陈述技术面、基本面分析
2. 给出操作建议(买入/持有/卖出)
3. 风险提示不少于3条 '''
# 步骤3:配置请求头
headers = {
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json',
'User-Agent': 'EastMoney-DeepSeek-Integration/1.0'
}
# 步骤4:构造请求体
payload = {
'model': 'deepseek-chat',
'messages': [
{'role': 'system', 'content': system_prompt},
{'role': 'user', 'content': '请生成详细分析报告'}
],
'temperature': 0.5,
'max_tokens': 1024,
'top_p': 0.9
}
# 步骤5:发送请求
try:
response = requests.post(
'https://api.deepseek.com/chat/completions',
headers=headers,
data=json.dumps(payload), # 注意此处用data而非json参数
timeout=30 # 设置超时时间
)
# 检查HTTP状态码
if response.status_code!= 200:
return f'请求失败,错误代码:{response.status_code}'
# 解析JSON响应
result = response.json()
return result['choices']['message']['content']
except requests.exceptions.RequestException as e:
return f'网络错误:{str(e)}'
# 测试代码
if __name__ == '__main__':
question = '结合技术指标分析贵州茅台短期走势'
report = generate_analysis(question)
print('='*50 '\nDeepSeek分析报告:\n' report '\n' '='*50)
配置文件设置(安全存储API密钥)创建.env文件:在项目文件夹右键,新建文本文档,重命名为.env。编辑内容:# DeepSeek API配置
DEEPSEEK_API_KEY = 'sk-your-actual-key-here' # 替换真实密钥
创建config.py:
import os
from dotenv import load_dotenv # 加载环境变量
load_dotenv()
# 获取密钥(带默认值防止报错)
API_KEY = os.getenv('DEEPSEEK_API_KEY', 'sk-default-key')
依赖安装(精确版本):执行pip install requests==2.31.0 python-dotenv==1.0.0 。全流程验证测试运行测试:执行python eastmoney.py 。预期成功输出==================================================
DeepSeek分析报告:
【贵州茅台(600519)分析报告】
一、技术面分析
1. 当前价格1820.50元,处于布林带上轨... (此处省略具体分析内容)
==================================================
错误排查实操场景1:出现ModuleNotFoundError: No module named 'dotenv',解决:重新执行pip install python-dotenv。场景2:返回401 Unauthorized,解决:检查.env文件是否与代码同级目录,密钥是否包含引号。场景3:响应内容不完整,解决:增加max_tokens值到2000。东方财富真实API对接(进阶)申请东方财富API权限:访问东方财富开放平台,注册开发者账号,创建应用,获取app_id和app_secret。修改数据获取函数def get_real_stock_data(code):
'''真实东方财富API调用示例'''
url = f'https://quote.eastmoney.com/sh{code}.html'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...'
}
try:
response = requests.get(url, headers=headers)
# 此处需解析实际返回的HTML/JSON数据
# 示例解析逻辑(需根据实际页面结构调整):
price = re.search(r''current': '(\d \.\d )'', response.text).group(1)
return {
'code': code,
'price': float(price),
# 其他字段...
}
except Exception as e:
print(f'数据获取失败:{str(e)}')
return None
可视化操作指引文件结构示意图eastmoney_deepseek/
├── eastmoney.py # 主程序
├── config.py # 配置加载
├──.env # 密钥存储
└── requirements.txt # 依赖列表
关键步骤速查表|步骤|操作|文件|注意事项|
|----|----|----|----|
|密钥配置|.env文件|开头不要有空格|
|依赖安装|终端|使用管理员权限运行|
|数据获取|get_stock_data()|正式环境需处理反爬机制|
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。