testopenassistant.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import os
  2. from pathlib import Path
  3. import time
  4. import openai
  5. base_url = "https://assistantapi.cocorobo.cn/api/v1"
  6. api_key = "cocorobo-xjw-admin"
  7. client = openai.OpenAI(base_url=base_url, api_key=api_key)
  8. if __name__ == "__main__":
  9. file_path = os.path.join(os.path.dirname(__file__) + "/test.txt")
  10. print(file_path)
  11. file = client.files.create(file=Path(file_path), purpose="assistants")
  12. print(file)
  13. assistant = client.beta.assistants.create(
  14. name="Assistant Demo",
  15. instructions="you are a personal assistant, file content could be retrieved to assist the conversation.",
  16. model="deepseek-chat",
  17. tools=[
  18. {"type": "file_search"},
  19. ],
  20. tool_resources={"file_search": {"vector_stores": [{"file_ids": [file.id]}]}},
  21. )
  22. # assistant = client.beta.assistants.retrieve(assistant_id="67614b38d5f1a0df9dddfba9")
  23. print("=====> : %s\n", assistant)
  24. thread = client.beta.threads.create()
  25. print("=====> : %s\n", thread)
  26. message = client.beta.threads.messages.create(
  27. thread_id=thread.id,
  28. role="user",
  29. content="内容有什么",
  30. # attachments=[
  31. # {"file_id": "67614b375e4b953d7f07c27a", "tools": [{"type": "file_search"}]}
  32. # ]
  33. )
  34. print("=====> : %s\n", message)
  35. run = client.beta.threads.runs.create(
  36. thread_id=thread.id,
  37. assistant_id=assistant.id,
  38. )
  39. print("=====> : %s\n", run)
  40. print("checking assistant status. \n")
  41. while True:
  42. run = client.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id)
  43. run_steps = client.beta.threads.runs.steps.list(
  44. run_id=run.id, thread_id=thread.id
  45. ).data
  46. for run_step in run_steps:
  47. print("=====> : %s\n", run_step)
  48. if run.status == "completed":
  49. messages = client.beta.threads.messages.list(thread_id=thread.id)
  50. print("=====> messages:")
  51. for message in messages:
  52. assert message.content[0].type == "text"
  53. print(
  54. "%s",
  55. {"role": message.role, "message": message.content[0].text.value},
  56. )
  57. # delete asst
  58. client.beta.assistants.delete(assistant.id)
  59. break
  60. elif run.status == "failed":
  61. print("run failed %s\n", run.last_error)
  62. break
  63. else:
  64. print("in progress...\n")
  65. time.sleep(5)
  66. """
  67. from openai import AssistantEventHandler, AsyncOpenAI, AsyncAssistantEventHandler
  68. asynopenai = AsyncOpenAI(
  69. api_key="sk-7QUuPsUmPB6piU54Tr0aJWFfFBo_dZtyfR52wc8BHHT3BlbkFJ4c_ee94b3vS9Yrbxp_JaiixmgyMjZ9lGomnP8fg9IA"
  70. )
  71. assistant = await asynopenai.beta.assistants.retrieve("asst_K0tzaQaDABQ7wELwb27SqadA")
  72. print(assistant)
  73. """