Плолтер приложение вызов в сложную функцию Python Cloud Times Out без журналов, но работает простая функцияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Плолтер приложение вызов в сложную функцию Python Cloud Times Out без журналов, но работает простая функция

Сообщение Anonymous »

Я строю приложение Flutter, и я застрял в очень странной проблеме, когда конкретная облачная функция Firebase не работает, в то время как другой работает отлично. Предполагается, что эта функция принимает URL, соскребает его с помощью запросов и BeautifulSoup, а затем отправить текст в API Gemini для обработки.
Проблема:
У меня есть две облачные функции, развернутые:
function function. /> Когда я называю Helloworld из моего приложения Flutter, это работает отлично. Я вижу «Функция, называемая ...» в моих журналах Firebase и получаю успешный ответ в консоли отладки моего приложения. Важно отметить, что никакие журналы не появляются для функции ScrapereCipe в консоли Firebase. Кажется, что вызов функции никогда не начинается. Я уже пробовал: < /p>
Подтверждение совершенно нового, чистого проекта Flutter (Flutter Create) строит и хорошо работает на моей машине. Это доказывает, что мои нативные файлы и зависимости Android являются правильными. < /P>
Подтверждение всех необходимых облачных API Google включено (облачные функции, облачный сборник, секретный менеджер, реестр артефактов и т. Д.). < /P>
Утверждение моего проекта находится на плазе (Pay-as-you-go), а на Goomer-Account Accounty Actordisting. Project. Проблема сохраняется.

Код: Выделить всё

firebase-functions>=0.2.0
firebase-admin>=6.5.0
requests>=2.32.0
beautifulsoup4>=4.12.0
google-generativeai>=0.5.0
Вот мои функции/main.py:
import os
from firebase_functions import https_fn, options
from firebase_admin import initialize_app
import requests
from bs4 import BeautifulSoup
import google.generativeai as genai
import json

initialize_app()

# This tells Firebase that your functions in this file may need secrets
options.set_global_options(secrets=["AI_API_KEY"])

@https_fn.on_call(timeout_sec=120, secrets=["AI_API_KEY"])
def scrapeRecipe(req: https_fn.CallableRequest) -> any:
if req.auth is None:
raise https_fn.HttpsError(
code="unauthenticated",
message="You must be logged in to use this feature."
)

url = req.data.get("url")
if not isinstance(url, str):
raise https_fn.HttpsError(
code="invalid-argument",
message="The function must be called with a valid URL."
)

try:
# This is the standard way to access a secret in Python functions
api_key = os.environ.get("AI_API_KEY")
if not api_key:
raise https_fn.HttpsError(code="internal", message="API Key not found.")

genai.configure(api_key=api_key)
model = genai.GenerativeModel("gemini-1.5-flash")

page = requests.get(url)
soup = BeautifulSoup(page.content, "html.parser")
raw_text = soup.get_text().replace("\n", " ").replace("\t", " ")

prompt = f"""
You are a recipe parsing expert. Analyze the following raw text scraped
from a website and extract the recipe information.
Your response MUST be a valid JSON object with the following keys:
"title", "category", "servings", "ingredients", "instructions", "notes".
The 'ingredients' and 'instructions' should be a single string with
newline characters (\\n) separating each item or step.
If a value for a key is not found, use an empty string "".
Do not wrap the final JSON in Markdown backticks.

Here is the raw text to parse:
{raw_text[:15000]}
"""
response = model.generate_content(prompt)
cleaned_text = response.text.replace("```json", "").replace("```", "").strip()
json_response = json.loads(cleaned_text)

return json_response

except Exception as e:
print(f"Error scraping recipe: {e}")
raise https_fn.HttpsError(
code="internal",
message="Failed to process recipe. The URL may be unsupported.",
)

@https_fn.on_call()
def helloWorld(req: https_fn.CallableRequest) -> any:
print("Hello world function was called!")
return {"message": "Hello from Firebase!"}
< /code>
Вот как я называю функцию из службы моего приложения Flutter: < /p>
dart < /p>
Future importRecipeFromUrl(
String url,
List categories,
) async {
try {
final callable = _functions.httpsCallable(
'scrapeRecipe',
options: HttpsCallableOptions(
timeout: const Duration(seconds: 120), // Set the timeout to 2 minutes
),
);
final result = await callable.call({
'url': url,
'categories': categories,
});
return result.data;
} on FirebaseFunctionsException catch (e) {
print('Firebase Functions Exception: ${e.code} - ${e.message}');
rethrow;
} catch (e) {
print('Generic Exception: $e');
rethrow;
}
}
}

< /code>
Мой вопрос:
Почему вызывание функции Firebase Cloud не может запустить (и не производить журналы) для сложной функции, в то время как более простая функция в том же проекте работает отлично? Учитывая, что нативная сборка преуспевает, и все разрешения/API кажутся правильными, что может привести к тому, что запрос в конечной точке ScrapereCipe будет отброшена до того, как его исполнение даже начнется?

Подробнее здесь: https://stackoverflow.com/questions/797 ... o-logs-but
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Плолтер приложение вызов в сложную функцию Python Cloud Times Out без журналов, но работает простая функция
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • OpenTeLemetry-CPP тестовый приложение работает, но тот же код в Times Out Out Out
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Соединение Docker Cloud Cloud Cloud Cloud
    Anonymous » » в форуме JAVA
    0 Ответы
    51 Просмотры
    Последнее сообщение Anonymous
  • Соединение Docker Cloud Cloud Cloud Cloud
    Anonymous » » в форуме JAVA
    0 Ответы
    58 Просмотры
    Последнее сообщение Anonymous
  • Запрос на Httplistener Times Out
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»