mirror of
https://github.com/AI4Finance-Foundation/FinGPT.git
synced 2024-02-15 23:10:01 +03:00
Merge pull request #155 from llk010502/branch_FinGPT
Update A-share_data_preparation.ipynb notebook
This commit is contained in:
@@ -1,33 +1,40 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Set Data API\n",
|
||||
"* We used AKShare API(https://github.com/akfamily/akshare) in the following data aquisition process.\n",
|
||||
"* Should point out that the original \"ak.stock_news_em\" stock news interface only support 100 most recent news, which may not be enought for training data formulation. So we added a new request parameter \"page\" to the source function to achieve multiple pages access."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"pip install akshare --upgrade"
|
||||
"! pip install akshare --upgrade"
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Save News Data to Local"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"execution_count": 11,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"'/Users/mac/Desktop/FinGPT_Forecasting_Project'"
|
||||
]
|
||||
},
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import os\n",
|
||||
"os.getcwd()"
|
||||
"os.chdir(\"/Users/mac/Desktop/FinGPT_Forecasting_Project/\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -693,12 +700,13 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"execution_count": 33,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import akshare as ak\n",
|
||||
"import pandas as pd\n",
|
||||
"import csv\n",
|
||||
"import time\n",
|
||||
"import math\n",
|
||||
"import json\n",
|
||||
@@ -709,7 +717,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": 4,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -854,7 +862,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": 53,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -862,7 +870,10 @@
|
||||
" \"\"\"\n",
|
||||
" Get company information from API\n",
|
||||
" \"\"\"\n",
|
||||
" company_profile = dict(ak.stock_individual_info_em(symbol).values)\n",
|
||||
" try:\n",
|
||||
" company_profile = dict(ak.stock_individual_info_em(symbol).values)\n",
|
||||
" except:\n",
|
||||
" print(\"Company Info Request Time Out! Please wait and retry.\")\n",
|
||||
" company_profile[\"上市时间\"] = pd.to_datetime(company_profile[\"上市时间\"]).strftime(\"%Y年%m月%d日\")\n",
|
||||
"\n",
|
||||
" template = \"[公司介绍]:\\n\\n{股票简称}是一家在{行业}行业的领先实体。自{上市时间}成立并公开交易以来,该公司已确立其作为市场主要参与者之一的声誉。截止今天,{股票简称}的总市值为{总市值}人民币,总股本数为{总股本},流通市值为{流通市值}人民币,流通股数为{流通股}。\" \\\n",
|
||||
@@ -939,7 +950,10 @@
|
||||
"\n",
|
||||
"def get_all_prompts(symbol, min_past_week=1, max_past_weeks=3, with_basics=True):\n",
|
||||
" \"\"\"\n",
|
||||
" Generate prompt\n",
|
||||
" Generate prompt. The prompt consists of news from past weeks, basics financial information, and weekly return.\n",
|
||||
" History news in the prompt is chosen from past weeks range from min_past_week to max_past_week, \n",
|
||||
" and there is a number constraint on ramdomly selected data (default: up to 5).\n",
|
||||
"\n",
|
||||
" Args:\n",
|
||||
" symbol: str\n",
|
||||
" stock ticker\n",
|
||||
@@ -966,7 +980,7 @@
|
||||
" # judge for available history news \n",
|
||||
" if len(prev_rows) >= min_past_week:\n",
|
||||
"\n",
|
||||
" # randomly set retrieve weeks\n",
|
||||
" # randomly set retrieve data of past weeks\n",
|
||||
" idx = min(random.choice(range(min_past_week, max_past_weeks+1)), len(prev_rows))\n",
|
||||
" for i in range(-idx, 0):\n",
|
||||
" # Add Head\n",
|
||||
@@ -995,8 +1009,8 @@
|
||||
" prediction = map_return_label(row['简化周收益'])\n",
|
||||
"\n",
|
||||
" prompt = company_prompt + '\\n' + prompt + '\\n' + basics\n",
|
||||
" prompt += f\"\\n\\n基于在{row['起始日期']}之前的所有信息,让我们首先分析{symbol}的积极发展和潜在担忧。保持陈述的简洁,分别提出2-4个最重要的因素。大部分所提及的因素应该从公司的相关新闻中推断出来。\" \\\n",
|
||||
" f\"那么让我们假设你对于下一周({row['起始日期']}至{row['结算日期']})的预测是{prediction}。提供一个总结分析来支持你的预测。预测结果需要从你最后的分析中推断出来,因此不作为你分析的基础因素。\"\n",
|
||||
" prompt += f\"\\n\\n基于在{row['起始日期'].strftime('%Y-%m-%d')}之前的所有信息,让我们首先分析{symbol}的积极发展和潜在担忧。请简洁地陈述,分别提出2-4个最重要的因素。大部分所提及的因素应该从公司的相关新闻中推断出来。\" \\\n",
|
||||
" f\"那么让我们假设你对于下一周({row['起始日期'].strftime('%Y-%m-%d')}至{row['结算日期'].strftime('%Y-%m-%d')})的预测是{prediction}。提供一个总结分析来支持你的预测。预测结果需要从你最后的分析中推断出来,因此不作为你分析的基础因素。\"\n",
|
||||
"\n",
|
||||
" all_prompts.append(prompt.strip())\n",
|
||||
"\n",
|
||||
@@ -1005,7 +1019,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": 32,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
@@ -1020,11 +1034,11 @@
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"['[公司介绍]:\\n\\n平安银行是一家在银行行业的领先实体。自1970年01月01日成立并公开交易以来,该公司已确立其作为市场主要参与者之一的声誉。截止今天,平安银行的总市值为178534447421.59998人民币,总股本数为19405918198.0,流通市值为178531031940.0人民币,流通股数为19405546950.0。\\n\\n平安银行主要在中国运营,以股票代码000001在交易所进行交易。作为在银行行业的一个主导力量,该公司持续创新,不断推动行业进步。\\n\\n自2023-04-09至2023-04-16,000001的股票价格由2257.00上涨至2268.38。在此期间的公司新闻如下所列:\\n\\n[新闻标题]:金融业高薪招聘AI训练师 有AI产品负责人年薪超百万\\n[新闻内容]:优先考虑具有拥有虚拟偶像、数字人相关产品工作经验者等。 BOSS直聘官网截图 也有一些相对“平易近人”的工作岗位。 如平安银行000001.SZ)网金及财富管理事业部招聘AI业务策略训练师,薪资待遇为1万-1.5万元/月。 平安银行介绍称,该岗位负责业务策略训练,将业务策略在智慧经营平台做落地实施,将策略与各触达方式做串联部署\\n\\n[新闻标题]:平安银行王蓉晖:矩阵式产品服务实现“真小微 真信用 真普惠”\\n[新闻内容]:就业多则经济活。 今年3月,在平安银行开放日上,平安银行董事长谢永林表示,全新的开放银行不仅是支持零售转型战略的新打法,而且通过服务平台上的海量小微客户,平安银行在服务小微,践行普惠金融方面也探索出了新举措。 平安银行财报显示,截至2022年末,平安银行普惠型小微企业贷款累计户数105\\n\\n[新闻标题]:20股特大单净流入资金超2亿元\\n[新闻内容]:491.562.30建筑装饰300120经纬辉开8.7819.952.28电子002051中工国际12.5010.042.25建筑装饰000001平安银行12.691.042.24银行601138工业富联18.072.322.09电子300014亿纬锂能68.904.242.07电力设备 特大单净流出资金排名\\n\\n如下所列为000001近期的一些金融基本面信息,记录时间为2023-03-31:\\n\\n[金融基本面]:\\n\\n报告期: 2023-03-31\\n净利润: 146.02亿\\n净利润同比增长率: 13.63%\\n扣非净利润: 144.69亿\\n扣非净利润同比增长率: 12.40%\\n营业总收入: 450.98亿\\n营业总收入同比增长率: -2.40%\\n基本每股收益: 0.6500\\n每股净资产: 19.42\\n每股资本公积金: 4.16\\n每股未分配利润: 10.25\\n每股经营现金流: 5.62\\n销售净利率: 32.38%\\n净资产收益率: 3.39%\\n净资产收益率-摊薄: 3.27%\\n产权比率: 11.21\\n资产负债率: 91.81%\\n\\n基于在2023-04-16 00:00:00之前的所有信息,让我们首先分析000001的积极发展和潜在担忧。保持陈述的简洁,分别提出2-4个最重要的因素。大部分所提及的因素应该从公司的相关新闻中推断出来。那么让我们假设你对于下一周(2023-04-16 00:00:00至2023-04-23 00:00:00)的预测是下跌1-2%。提供一个总结分析来支持你的预测。预测结果需要从你最后的分析中推断出来,因此不作为你分析的基础因素。',\n",
|
||||
" '[公司介绍]:\\n\\n平安银行是一家在银行行业的领先实体。自1970年01月01日成立并公开交易以来,该公司已确立其作为市场主要参与者之一的声誉。截止今天,平安银行的总市值为178534447421.59998人民币,总股本数为19405918198.0,流通市值为178531031940.0人民币,流通股数为19405546950.0。\\n\\n平安银行主要在中国运营,以股票代码000001在交易所进行交易。作为在银行行业的一个主导力量,该公司持续创新,不断推动行业进步。\\n\\n自2023-04-16至2023-04-23,000001的股票价格由2268.38下跌至2237.50。在此期间的公司新闻如下所列:\\n\\n[新闻标题]:北向资金昨日净买入22.64亿元,光伏设备增持超10亿元(名单)\\n[新闻内容]:北向资金净卖出昆仑万维(300418.SZ)、金山办公(688111.SH)、平安银行000001.SZ)、华友钴业(603799.SH)、天齐锂业(002466.SZ)居前,其中,昆仑万维被净卖出4.30亿元,金山办公被净卖出3.65亿元,平安银行被净卖出3.60亿元,华友钴业被净卖出2.76亿元,天齐锂业被净卖出2\\n\\n如下所列为000001近期的一些金融基本面信息,记录时间为2023-03-31:\\n\\n[金融基本面]:\\n\\n报告期: 2023-03-31\\n净利润: 146.02亿\\n净利润同比增长率: 13.63%\\n扣非净利润: 144.69亿\\n扣非净利润同比增长率: 12.40%\\n营业总收入: 450.98亿\\n营业总收入同比增长率: -2.40%\\n基本每股收益: 0.6500\\n每股净资产: 19.42\\n每股资本公积金: 4.16\\n每股未分配利润: 10.25\\n每股经营现金流: 5.62\\n销售净利率: 32.38%\\n净资产收益率: 3.39%\\n净资产收益率-摊薄: 3.27%\\n产权比率: 11.21\\n资产负债率: 91.81%\\n\\n基于在2023-04-23 00:00:00之前的所有信息,让我们首先分析000001的积极发展和潜在担忧。保持陈述的简洁,分别提出2-4个最重要的因素。大部分所提及的因素应该从公司的相关新闻中推断出来。那么让我们假设你对于下一周(2023-04-23 00:00:00至2023-04-30 00:00:00)的预测是上涨0-1%。提供一个总结分析来支持你的预测。预测结果需要从你最后的分析中推断出来,因此不作为你分析的基础因素。']"
|
||||
"['[公司介绍]:\\n\\n平安银行是一家在银行行业的领先实体。自1970年01月01日成立并公开交易以来,该公司已确立其作为市场主要参与者之一的声誉。截止今天,平安银行的总市值为186684933064.75998人民币,总股本数为19405918198.0,流通市值为186681361659.0人民币,流通股数为19405546950.0。\\n\\n平安银行主要在中国运营,以股票代码000001在交易所进行交易。作为在银行行业的一个主导力量,该公司持续创新,不断推动行业进步。\\n\\n自2023-04-09至2023-04-16,000001的股票价格由2257.00上涨至2268.38。在此期间的公司新闻如下所列:\\n\\n[新闻标题]:金融业高薪招聘AI训练师 有AI产品负责人年薪超百万\\n[新闻内容]:优先考虑具有拥有虚拟偶像、数字人相关产品工作经验者等。 BOSS直聘官网截图 也有一些相对“平易近人”的工作岗位。 如平安银行000001.SZ)网金及财富管理事业部招聘AI业务策略训练师,薪资待遇为1万-1.5万元/月。 平安银行介绍称,该岗位负责业务策略训练,将业务策略在智慧经营平台做落地实施,将策略与各触达方式做串联部署\\n\\n[新闻标题]:平安银行王蓉晖:矩阵式产品服务实现“真小微 真信用 真普惠”\\n[新闻内容]:就业多则经济活。 今年3月,在平安银行开放日上,平安银行董事长谢永林表示,全新的开放银行不仅是支持零售转型战略的新打法,而且通过服务平台上的海量小微客户,平安银行在服务小微,践行普惠金融方面也探索出了新举措。 平安银行财报显示,截至2022年末,平安银行普惠型小微企业贷款累计户数105\\n\\n[新闻标题]:20股特大单净流入资金超2亿元\\n[新闻内容]:491.562.30建筑装饰300120经纬辉开8.7819.952.28电子002051中工国际12.5010.042.25建筑装饰000001平安银行12.691.042.24银行601138工业富联18.072.322.09电子300014亿纬锂能68.904.242.07电力设备 特大单净流出资金排名\\n\\n如下所列为000001近期的一些金融基本面信息,记录时间为2023-03-31:\\n\\n[金融基本面]:\\n\\n报告期: 2023-03-31\\n净利润: 146.02亿\\n净利润同比增长率: 13.63%\\n扣非净利润: 144.69亿\\n扣非净利润同比增长率: 12.40%\\n营业总收入: 450.98亿\\n营业总收入同比增长率: -2.40%\\n基本每股收益: 0.6500\\n每股净资产: 19.42\\n每股资本公积金: 4.16\\n每股未分配利润: 10.25\\n每股经营现金流: 5.62\\n销售净利率: 32.38%\\n净资产收益率: 3.39%\\n净资产收益率-摊薄: 3.27%\\n产权比率: 11.21\\n资产负债率: 91.81%\\n\\n基于在2023-04-16之前的所有信息,让我们首先分析000001的积极发展和潜在担忧。请简洁地陈述,分别提出2-4个最重要的因素。大部分所提及的因素应该从公司的相关新闻中推断出来。那么让我们假设你对于下一周(2023-04-16至2023-04-23)的预测是下跌1-2%。提供一个总结分析来支持你的预测。预测结果需要从你最后的分析中推断出来,因此不作为你分析的基础因素。',\n",
|
||||
" '[公司介绍]:\\n\\n平安银行是一家在银行行业的领先实体。自1970年01月01日成立并公开交易以来,该公司已确立其作为市场主要参与者之一的声誉。截止今天,平安银行的总市值为186684933064.75998人民币,总股本数为19405918198.0,流通市值为186681361659.0人民币,流通股数为19405546950.0。\\n\\n平安银行主要在中国运营,以股票代码000001在交易所进行交易。作为在银行行业的一个主导力量,该公司持续创新,不断推动行业进步。\\n\\n自2023-04-16至2023-04-23,000001的股票价格由2268.38下跌至2237.50。在此期间的公司新闻如下所列:\\n\\n[新闻标题]:北向资金昨日净买入22.64亿元,光伏设备增持超10亿元(名单)\\n[新闻内容]:北向资金净卖出昆仑万维(300418.SZ)、金山办公(688111.SH)、平安银行000001.SZ)、华友钴业(603799.SH)、天齐锂业(002466.SZ)居前,其中,昆仑万维被净卖出4.30亿元,金山办公被净卖出3.65亿元,平安银行被净卖出3.60亿元,华友钴业被净卖出2.76亿元,天齐锂业被净卖出2\\n\\n如下所列为000001近期的一些金融基本面信息,记录时间为2023-03-31:\\n\\n[金融基本面]:\\n\\n报告期: 2023-03-31\\n净利润: 146.02亿\\n净利润同比增长率: 13.63%\\n扣非净利润: 144.69亿\\n扣非净利润同比增长率: 12.40%\\n营业总收入: 450.98亿\\n营业总收入同比增长率: -2.40%\\n基本每股收益: 0.6500\\n每股净资产: 19.42\\n每股资本公积金: 4.16\\n每股未分配利润: 10.25\\n每股经营现金流: 5.62\\n销售净利率: 32.38%\\n净资产收益率: 3.39%\\n净资产收益率-摊薄: 3.27%\\n产权比率: 11.21\\n资产负债率: 91.81%\\n\\n基于在2023-04-23之前的所有信息,让我们首先分析000001的积极发展和潜在担忧。请简洁地陈述,分别提出2-4个最重要的因素。大部分所提及的因素应该从公司的相关新闻中推断出来。那么让我们假设你对于下一周(2023-04-23至2023-04-30)的预测是上涨0-1%。提供一个总结分析来支持你的预测。预测结果需要从你最后的分析中推断出来,因此不作为你分析的基础因素。']"
|
||||
]
|
||||
},
|
||||
"execution_count": 4,
|
||||
"execution_count": 32,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@@ -1035,7 +1049,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": 19,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
@@ -1062,9 +1076,93 @@
|
||||
"print(SYSTEM_PROMPT)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Generate Task-Response with GPT"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": 42,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from openai import OpenAI\n",
|
||||
"\n",
|
||||
"client = OpenAI(api_key = \"Your API\")\n",
|
||||
"\n",
|
||||
"DATA_DIR = f\"./{start_date}_{end_date}\"\n",
|
||||
"os.makedirs(DATA_DIR, exist_ok=True)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 43,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def append_to_csv(filename, input_data, output_data):\n",
|
||||
" \n",
|
||||
" with open(filename, mode='a', newline='') as file:\n",
|
||||
" writer = csv.writer(file)\n",
|
||||
" writer.writerow([input_data, output_data])\n",
|
||||
"\n",
|
||||
" \n",
|
||||
"def initialize_csv(filename):\n",
|
||||
" \n",
|
||||
" with open(filename, mode='w', newline='') as file:\n",
|
||||
" writer = csv.writer(file)\n",
|
||||
" writer.writerow([\"prompt\", \"answer\"])\n",
|
||||
"\n",
|
||||
"def query_gpt4(symbol_list, min_past_weeks=1, max_past_weeks=3, with_basics=True):\n",
|
||||
"\n",
|
||||
" for symbol in symbol_list:\n",
|
||||
" \n",
|
||||
" csv_file = f'{DATA_DIR}/{symbol}_{start_date}_{end_date}_gpt-4.csv' if with_basics else \\\n",
|
||||
" f'{DATA_DIR}/{symbol}_{start_date}_{end_date}_nobasics_gpt-4.csv'\n",
|
||||
" \n",
|
||||
" if not os.path.exists(csv_file):\n",
|
||||
" initialize_csv(csv_file)\n",
|
||||
" pre_done = 0\n",
|
||||
" else:\n",
|
||||
" df = pd.read_csv(csv_file)\n",
|
||||
" pre_done = len(df)\n",
|
||||
"\n",
|
||||
" prompts = get_all_prompts(symbol, min_past_weeks, max_past_weeks, with_basics)\n",
|
||||
"\n",
|
||||
" for i, prompt in enumerate(prompts):\n",
|
||||
" \n",
|
||||
" if i < pre_done:\n",
|
||||
" continue\n",
|
||||
"\n",
|
||||
" print(f\"{symbol} - {i}\")\n",
|
||||
" \n",
|
||||
" cnt = 0\n",
|
||||
" while cnt < 5:\n",
|
||||
" try:\n",
|
||||
" completion = client.chat.completions.create(\n",
|
||||
" model=\"gpt-4\",\n",
|
||||
" messages=[\n",
|
||||
" {\"role\": \"system\", \"content\": SYSTEM_PROMPT},\n",
|
||||
" {\"role\": \"user\", \"content\": prompt}\n",
|
||||
" ]\n",
|
||||
" )\n",
|
||||
" break \n",
|
||||
" except Exception:\n",
|
||||
" cnt += 1\n",
|
||||
" print(f'retry cnt {cnt}')\n",
|
||||
" \n",
|
||||
" answer = completion.choices[0].message.content if cnt < 5 else \"\"\n",
|
||||
" append_to_csv(csv_file, prompt, answer)\n",
|
||||
" "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 52,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
@@ -1073,95 +1171,23 @@
|
||||
"text": [
|
||||
"000001 : 2023-04-09 - 2023-04-16\n",
|
||||
"000001 : 2023-04-16 - 2023-04-23\n",
|
||||
"000001 : 2023-04-23 - 2023-04-30\n"
|
||||
"000001 : 2023-04-23 - 2023-04-30\n",
|
||||
"000001 - 0\n",
|
||||
"000001 - 1\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"pmt = get_all_prompts(\"000001\")"
|
||||
"query_gpt4([\"000001\"], 1, 2)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from openai import OpenAI\n",
|
||||
"client = OpenAI(api_key = '')\n",
|
||||
"completion = client.chat.completions.create(\n",
|
||||
" model = \"gpt-3.5-turbo\",\n",
|
||||
" messages=[\n",
|
||||
" {\"role\": \"system\", \"content\":SYSTEM_PROMPT},\n",
|
||||
" {\"role\": \"user\", \"content\": pmt[1]}\n",
|
||||
" ]\n",
|
||||
")"
|
||||
"# Formulate Training Data ..."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"请求失败,状态码: 429\n",
|
||||
"请求失败,body: {\"error\":{\"code\":\"insufficient_quota\",\"param\":null,\"type\":\"insufficient_quota\",\"message\":\"You exceeded your current quota, please check your plan and billing details.\"}}\n",
|
||||
"请求失败,X-BC-Request-Id: cfcdb74d-9416-47e4-98d2-b6149fa1765f\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import requests\n",
|
||||
"import json\n",
|
||||
"\n",
|
||||
"def do_request():\n",
|
||||
" url = \"https://api.baichuan-ai.com/v1/chat/completions\"\n",
|
||||
" api_key = \"sk-7c765c13dddfc800953163c1b98b9304\"\n",
|
||||
"\n",
|
||||
" data = {\n",
|
||||
" \"model\": \"Baichuan2-Turbo\",\n",
|
||||
" \"messages\": [\n",
|
||||
" {\n",
|
||||
" \"role\": \"user\",\n",
|
||||
" \"content\": \"世界第一高峰是\"\n",
|
||||
" }\n",
|
||||
" ],\n",
|
||||
" \"stream\": True\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" json_data = json.dumps(data)\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"Authorization\": \"Bearer \" + api_key\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" response = requests.post(url, data=json_data, headers=headers, timeout=60)\n",
|
||||
"\n",
|
||||
" if response.status_code == 200:\n",
|
||||
" print(\"请求成功!\")\n",
|
||||
" print(\"响应body:\", response.text)\n",
|
||||
" print(\"请求成功,X-BC-Request-Id:\", response.headers.get(\"X-BC-Request-Id\"))\n",
|
||||
" else:\n",
|
||||
" print(\"请求失败,状态码:\", response.status_code)\n",
|
||||
" print(\"请求失败,body:\", response.text)\n",
|
||||
" print(\"请求失败,X-BC-Request-Id:\", response.headers.get(\"X-BC-Request-Id\"))\n",
|
||||
"\n",
|
||||
"if __name__ == \"__main__\":\n",
|
||||
" do_request()\n",
|
||||
"\n",
|
||||
" "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
||||
Reference in New Issue
Block a user