1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import os
- from pathlib import Path
- from fastapi import FastAPI, File, UploadFile
- from openai import OpenAI
- app = FastAPI()
- client = OpenAI(
- api_key=os.getenv("DASHSCOPE_API_KEY"), # 如果您没有配置环境变量,请在此处替换您的API-KEY
- base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", # 填写DashScope服务base_url
- )
- @app.get("/upload-filepath")
- async def create_upload_file(filepath: str = None,
- file_id: str = None,
- user_msg: str = '请准确提取文件中的表格内容,要求用字典返回并去掉金额单位、英文和空格'):
- # 读取文件内容(可选)
- # contents = await file.read()
- # 这里可以对文件进行进一步处理,比如保存到服务器上
- # with open(f"./{file.filename}", "wb") as f:
- # f.write(contents)
- if file_id is None:
- file_object = client.files.create(file=Path(filepath), purpose="file-extract")
- file_id = file_object.id
- # 初始化messages列表
- completion = client.chat.completions.create(
- model="qwen-long",
- messages=[
- {'role': 'system', 'content': 'You are a helpful assistant.'},
- {'role': 'system', 'content': f'fileid://{file_id}'},
- {'role': 'user', 'content': user_msg}
- ],
- )
- return {"file_id": file_id, "content": completion.choices[0].message.content}
- @app.post("/upload-file")
- async def create_upload_file(file: UploadFile = File(...),
- file_id: str = None,
- user_msg: str = '请准确提取文件中的表格内容,要求用字典返回并去掉金额单位、英文和空格'):
- if file_id is None:
- # 读取文件内容(可选)
- contents = await file.read()
- # 这里可以对文件进行进一步处理,比如保存到服务器上
- with open(f"./uploads/{file.filename}", "wb") as f:
- f.write(contents)
- file_object = client.files.create(file=Path(f"./uploads/{file.filename}"), purpose="file-extract")
- file_id = file_object.id
- # 初始化messages列表
- completion = client.chat.completions.create(
- model="qwen-long",
- messages=[
- {'role': 'system', 'content': 'You are a helpful assistant.'},
- {'role': 'system', 'content': f'fileid://{file_id}'},
- {'role': 'user', 'content': user_msg}
- ],
- )
- return {"file_id": file_id, "content": completion.choices[0].message.content}
|