老师解释一行code就够用
while True: query(input()).write('output.jpeg')
好吧,小爷爷把您这句蹩脚code改进一下,看看华为如何做到的!!
# 设置Bing Image Search API的相关信息
subscription_key = "your_bing_api_key"
search_url = "https://api.bing.microsoft.com/v7.0/images/search"
headers = {"Ocp-Apim-Subscription-Key": subscription_key}
def query(user_input):
# 使用Bing Image Search API搜索图像找到与用户描述最相关的图像
params = {"q": user_input, "license": "public", "imageType": "photo"}
response = requests.get(search_url, headers=headers, params=params)
search_results = response.json()
if "value" in search_results and len(search_results["value"]) > 0:
# 获取第一个图像的URL
image_url = search_results["value"][0]["contentUrl"]
image_response = requests.get(image_url)
if image_response.status_code == 200:
image_data = image_response.content
else:
raise ValueError("Failed to retrieve image from the URL")
else:
raise ValueError("No images found for the query")
class QueryResult:
def __init__(self, data):
self.data = data
def write(self, filename):
with open(filename, 'wb') as f:
f.write(self.data)
return QueryResult(image_data)
while True:
user_input = input("请输入图像描述 (or type 'exit' to quit): ")
if user_input.lower() == 'exit':
break
try:
result = query(user_input)
print("上面query运行太快,显得很不真实,俺只好假装思考6秒钟")
time.sleep(6)
result.write('output.jpeg')
print(”嗯,这样结束就蛮真实了“)
except Exception as e:
print(f"An error occurred: {e}")