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 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)
|