# # import os # # import re # # from subprocess import check_output # # def update_requirements(): # # """更新requirements.txt文件,确保所有包都是最新版本""" # # with open('requirements.txt', 'r') as file: # # packages = file.readlines() # # # 获取最新版本的包 # # latest_packages = check_output( # # ['pip', 'install', '--upgrade', '--quiet', '--no-deps', '-I'] + # # [package.strip() for package in packages if package.strip()], # # text=True # # ).splitlines() # # # 解析最新版本信息 # # latest_packages_dict = dict(re.findall( # # r'^(\S*)\s+\((\S*)\)\s+-.*$', # # line, # # re.MULTILINE # # ) for line in latest_packages if line.startswith(('Installing', 'Upgrading'))) # # # 更新requirements.txt文件 # # with open('requirements.txt', 'w') as file: # # for package in packages: # # match = re.match(r'^(\S*)\s+.*$', package.strip()) # # if match and match.group(1) in latest_packages_dict: # # file.write(f'{match.group(1)}=={latest_packages_dict[match.group(1)]}\n') # # else: # # file.write(package.strip() + os.linesep) # # if __name__ == '__main__': # # update_requirements() # import api_key, os, openai # openai.api_key = api_key.openai_key # # openai.api_key = "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" # # openai.api_key = "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" # # #你申请的openai的api key # a = os.environ["OPENAI_API_KEY"] = api_key.openai_key # list_new_pdf = [] # list = openai.files.list( # purpose="assistants", # extra_query={"order":"asc"} # ) # bytes = 0 # for item in list.data: # list_new_pdf.append(item) # bytes = bytes + item.bytes # total1 = bytes/1024/1024/1024 # print("assistants:") # print(len(list.data)) # print(str(total1) + "G") # print('') # list = openai.files.list( # purpose="assistants", # extra_query={"order":"asc","after":(list.data)[-1].id} # ) # bytes = 0 # for item in list.data: # list_new_pdf.append(item) # bytes = bytes + item.bytes # total2 = bytes/1024/1024/1024 # print("assistants:") # print(len(list.data)) # print(str(total2) + "G") # print('') # list = openai.files.list( # purpose="assistants", # extra_query={"order":"asc","after":(list.data)[-1].id} # ) # bytes = 0 # for item in list.data: # list_new_pdf.append(item) # bytes = bytes + item.bytes # total3 = bytes/1024/1024/1024 # print("assistants:") # print(len(list.data)) # print(str(total3) + "G") # print('') # list = openai.files.list( # purpose="assistants", # extra_query={"order":"asc","after":(list.data)[-1].id} # ) # bytes = 0 # for item in list.data: # list_new_pdf.append(item) # bytes = bytes + item.bytes # total4 = bytes/1024/1024/1024 # print("assistants:") # print(len(list.data)) # print(str(total4) + "G") # print('') # list = openai.files.list( # purpose="assistants", # extra_query={"order":"asc","after":(list.data)[-1].id} # ) # bytes = 0 # for item in list.data: # list_new_pdf.append(item) # bytes = bytes + item.bytes # total5 = bytes/1024/1024/1024 # print("assistants:") # print(len(list.data)) # print(str(total5) + "G") # print('') # # print(str(bytes/1024/1024/1024) + "G") # print(len(list_new_pdf)) # print(total1 + total2 + total3 + total4 + total5) # # for item in list_new_pdf: # # print(item) # list_new_pdf_new = [] # bytes = 0 # for item in list_new_pdf: # if ".ppt" in item.filename or ".pptx" in item.filename: # bytes = bytes + item.bytes # list_new_pdf_new.append(item) # print(str(bytes/1024/1024/1024) + "G") # print(len(list_new_pdf_new)) # # print(list_new_pdf_new[3]) # pdf = [] # for item in list_new_pdf_new: # if item.bytes >= 52428800: # pdf.append(item) # bytes = 0 # for item in pdf: # print(item) # bytes = bytes + item.bytes # print(str(bytes/1024/1024/1024) + "G") # print(len(pdf)) # for item in pdf: # # if item.id in list_new_pdf: # openai.files.delete(item.id) # list_new_pdf_new = [] # bytes = 0 # for item in list_new_pdf: # if ".doc" in item.filename or ".docx" in item.filename: # bytes = bytes + item.bytes # list_new_pdf_new.append(item) # print(str(bytes/1024/1024/1024) + "G") # print(len(list_new_pdf_new)) # list_new_pdf_new = [] # bytes = 0 # for item in list_new_pdf: # if ".xls" in item.filename or ".xlsx" in item.filename: # bytes = bytes + item.bytes # list_new_pdf_new.append(item) # print(str(bytes/1024/1024/1024) + "G") # print(len(list_new_pdf_new)) # list_new_pdf = [] # bytes = 0 # for item in list.data: # if ".xlsx" in item.filename: # bytes = bytes + item.bytes # list_new_pdf.append(item) # print(str(bytes/1024/1024/1024) + "G") # print(len(list_new_pdf)) # list = [] # bytes = 0 # for i in range(16): # bytes = bytes + list_new[i].bytes # print(list_new[i]) # print('') # list.append(list_new[i]) # print(list) # for item in list_new_pdf: # if item.id == "file-1Mbqss6qX6GPnTKM6izCx1": # print(item) # deleteList = ["file-9uYPz7MWTpjgsUhond2pdFVc","file-U7oU81MT34NTeHaZu6dv2yhq","file-nUyGEdScnyLCuRZ3a2vLCY6B","file-Uy8H9ePoGspsXyTwWUwwhAlK"] # for item in list_new_pdf: # # if item.id in list_new_pdf: # openai.files.delete(item.id) # list = openai.files.list( # purpose="assistants_output", # extra_query={"order":"desc"} # ) # # print(list) # bytes = 0 # for item in list.data: # if item.bytes != None: # bytes = bytes + item.bytes # print("assistants_output:") # print(len(list.data)) # print(str(bytes/1024/1024/1024) + "G") # print('') # list = openai.files.list( # purpose="batch", # extra_query={"order":"desc"} # ) # bytes = 0 # for item in list.data: # bytes = bytes + item.bytes # print("batch:") # print(len(list.data)) # print(str(bytes/1024/1024/1024) + "G") # print('') # list = openai.files.list( # purpose="batch_output", # extra_query={"order":"desc"} # ) # print("batch_output:") # print(len(list.data)) # print('') # list = openai.files.list( # purpose="fine-tune", # extra_query={"order":"desc"} # ) # bytes = 0 # for item in list.data: # bytes = bytes + item.bytes # print("fine-tune:") # print(len(list.data)) # print(str(bytes/1024/1024/1024) + "G") # print('') # list = openai.files.list( # purpose="fine-tune-results", # extra_query={"order":"desc"} # ) # print("fine-tune-results:") # print(len(list.data)) # print('') # list = openai.files.list( # purpose="vision", # extra_query={"order":"desc"} # ) # bytes = 0 # for item in list.data: # bytes = bytes + item.bytes # print("vision:") # print(len(list.data)) # print(str(bytes/1024/1024/1024) + "G") import logging import os from pathlib import Path import time import openai from openai import AssistantEventHandler from openai.types.beta import AssistantStreamEvent from openai.types.beta.assistant_stream_event import ThreadMessageInProgress from openai.types.beta.threads.message import Message from openai.types.beta.threads.runs import ToolCall, ToolCallDelta base_url = "https://assistantapi.cocorobo.cn/api/v1" api_key = "cocorobo-xjw-admin" client = openai.OpenAI(base_url=base_url, api_key=api_key) class EventHandler(openai.AssistantEventHandler): def __init__(self) -> None: super().__init__() def on_tool_call_created(self, tool_call: ToolCall) -> None: logging.info("=====> tool call created: %s\n", tool_call) def on_tool_call_delta(self, delta: ToolCallDelta, snapshot: ToolCall) -> None: logging.info("=====> tool call delta") logging.info("delta : %s", delta) logging.info("snapshot: %s\n", snapshot) def on_tool_call_done(self, tool_call: ToolCall) -> None: logging.info("=====> tool call done: %s\n", tool_call) self.tool_call = tool_call def on_message_created(self, message: Message) -> None: logging.info("=====> message created: %s\n", message) def on_message_delta(self, delta, snapshot: Message) -> None: logging.info("=====> message delta") logging.info("=====> delta : %s", delta) logging.info("=====> snapshot: %s\n", snapshot) def on_message_done(self, message: Message) -> None: logging.info("=====> message done: %s\n", message) def on_text_created(self, text) -> None: logging.info("=====> text create: %s\n", text) def on_text_delta(self, delta, snapshot) -> None: logging.info("=====> text delta") logging.info("delta : %s", delta) logging.info("snapshot: %s\n", snapshot) def on_text_done(self, text) -> None: logging.info("text done: %s\n", text) def on_event(self, event: AssistantStreamEvent) -> None: if isinstance(event, ThreadMessageInProgress): logging.info("event: %s\n", event) if __name__ == "__main__": file_path = os.path.join(os.path.dirname(__file__) + "/test.txt") print(file_path) file = client.files.create(file=Path(file_path), purpose="assistants") print(file) assistant = client.beta.assistants.create( name="Assistant Demo", instructions="会议分析师", model="gpt-4o-2024-11-20", tools=[ {"type": "file_search"}, ], tool_resources={"file_search": {"vector_stores": [{"file_ids": [file.id]}]}}, ) # assistant = client.beta.assistants.retrieve(assistant_id="67614b38d5f1a0df9dddfba9") print("=====> : %s\n", assistant) thread = client.beta.threads.create() print("=====> : %s\n", thread) message = client.beta.threads.messages.create( thread_id=thread.id, role="user", content="人工智能核心内容", # attachments=[ # {"file_id": "67614b375e4b953d7f07c27a", "tools": [{"type": "file_search"}]} # ] ) print("=====> : %s\n", message) event_handler = EventHandler() with client.beta.threads.runs.stream( thread_id=thread.id, assistant_id=assistant.id, instructions="Please address the user as Jane Doe. The user has a premium account.", ) as stream: for event in stream: # Print the text from text delta events if ( "type" in event and event.type == "thread.message.delta" and event.data.delta.content ): print(event.data.delta.content[0].text) """ with client.beta.threads.runs.stream( thread_id=thread.id, assistant_id=assistant.id, event_handler=event_handler, extra_body={"stream_options": {"include_usage": True}}, ) as stream: print(stream) stream.until_done() """ # run = client.beta.threads.runs.create( # thread_id=thread.id, # assistant_id=assistant.id, # ) # print("=====> : %s\n", run) # print("checking assistant status. \n") # while True: # run = client.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id) # run_steps = client.beta.threads.runs.steps.list(run_id=run.id, thread_id=thread.id).data # for run_step in run_steps: # print("=====> : %s\n", run_step) # if run.status == "completed": # messages = client.beta.threads.messages.list(thread_id=thread.id) # print("=====> messages:") # for message in messages: # assert message.content[0].type == "text" # print("%s", {"role": message.role, "message": message.content[0].text.value}) # # delete asst # client.beta.assistants.delete(assistant.id) # break # elif run.status == "failed": # print("run failed %s\n", run.last_error) # break # else: # print("in progress...\n") # time.sleep(5)