| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433 | # # 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 loggingimport osfrom pathlib import Pathimport timeimport openaifrom openai import AssistantEventHandlerfrom openai.types.beta import AssistantStreamEventfrom openai.types.beta.assistant_stream_event import ThreadMessageInProgressfrom openai.types.beta.threads.message import Messagefrom openai.types.beta.threads.runs import ToolCall, ToolCallDeltabase_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)
 |