mirror of
				https://github.com/PaddlePaddle/FastDeploy.git
				synced 2025-10-31 20:02:53 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			99 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """
 | ||
| # Copyright (c) 2025  PaddlePaddle Authors. All Rights Reserved.
 | ||
| #
 | ||
| # Licensed under the Apache License, Version 2.0 (the "License"
 | ||
| # you may not use this file except in compliance with the License.
 | ||
| # You may obtain a copy of the License at
 | ||
| #
 | ||
| #     http://www.apache.org/licenses/LICENSE-2.0
 | ||
| #
 | ||
| # Unless required by applicable law or agreed to in writing, software
 | ||
| # distributed under the License is distributed on an "AS IS" BASIS,
 | ||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||
| # See the License for the specific language governing permissions and
 | ||
| # limitations under the License.
 | ||
| """
 | ||
| 
 | ||
| 
 | ||
| import openai
 | ||
| 
 | ||
| print("hello")
 | ||
| ip = "0.0.0.0"
 | ||
| service_http_port = "9809"
 | ||
| client = openai.Client(base_url=f"http://{ip}:{service_http_port}/v1",
 | ||
|                        api_key="EMPTY_API_KEY")
 | ||
| print("world")
 | ||
| 
 | ||
| # 非流式对话
 | ||
| response = client.chat.completions.create(
 | ||
|     model="default",
 | ||
|     messages=[
 | ||
|         {
 | ||
|             "role": "system",
 | ||
|             "content": "You are a helpful AI assistant."
 | ||
|         },  # system不是必需,可选
 | ||
|         {
 | ||
|             "role":
 | ||
|             "user",
 | ||
|             "content": [{
 | ||
|                 "type": "image_url",
 | ||
|                 "image_url": {
 | ||
|                     "url":
 | ||
|                     "https://ku.baidu-int.com/vk-assets-ltd/space/2024/09/13/933d1e0a0760498e94ec0f2ccee865e0",
 | ||
|                     "detail": "high"
 | ||
|                 }
 | ||
|             }, {
 | ||
|                 "type": "text",
 | ||
|                 "text": "请描述图片内容"
 | ||
|             }]
 | ||
|         }
 | ||
|     ],
 | ||
|     temperature=1,
 | ||
|     max_tokens=53,
 | ||
|     stream=False,
 | ||
| )
 | ||
| print(response)
 | ||
| 
 | ||
| # 流式对话,历史多轮
 | ||
| response = client.chat.completions.create(
 | ||
|     model="default",
 | ||
|     messages=[
 | ||
|         {
 | ||
|             "role": "system",
 | ||
|             "content": "You are a helpful AI assistant."
 | ||
|         },  # system不是必需,可选
 | ||
|         {
 | ||
|             "role": "user",
 | ||
|             "content": "List 3 countries and their capitals."
 | ||
|         },
 | ||
|         {
 | ||
|             "role": "assistant",
 | ||
|             "content": "China(Beijing), France(Paris), Australia(Canberra)."
 | ||
|         },
 | ||
|         {
 | ||
|             "role":
 | ||
|             "user",
 | ||
|             "content": [{
 | ||
|                 "type": "image_url",
 | ||
|                 "image_url": {
 | ||
|                     "url":
 | ||
|                     "https://ku.baidu-int.com/vk-assets-ltd/space/2024/09/13/933d1e0a0760498e94ec0f2ccee865e0",
 | ||
|                     "detail": "high"
 | ||
|                 }
 | ||
|             }, {
 | ||
|                 "type": "text",
 | ||
|                 "text": "请描述图片内容"
 | ||
|             }]
 | ||
|         },
 | ||
|     ],
 | ||
|     temperature=1,
 | ||
|     max_tokens=512,
 | ||
|     stream=True,
 | ||
| )
 | ||
| for chunk in response:
 | ||
|     if chunk.choices[0].delta is not None:
 | ||
|         # print(chunk.choices[0].delta, end='')
 | ||
|         # print("\n")
 | ||
|         print(chunk.choices[0].delta.content, end='')
 | ||
| print(response)
 | 
