Как выполнять динамические вызовы API на основе пользовательского ввода в приложении Gemini Python nlp?

Я работаю над приложением Gemini, в котором мне нужно выполнять динамические вызовы API на основе пользовательского ввода. В частности, я хочу выполнять разные запросы API в зависимости от запроса пользователя. Например, если пользователь запрашивает последние новости, приложение должно выполнить API-вызов службы новостей. Аналогично, если пользователь хочет узнать текущую погоду, приложение должно получить данные из API погоды.

Вот основная схема того, чего я пытаюсь достичь:

Захват ввода пользователя. Определите тип запроса на основе входных данных (например, новости или погода). Сделайте соответствующий вызов API и верните данные пользователю. Я хочу избегать использования для этой цели сторонних библиотек, таких как RAG. Как я могу реализовать эту функциональность в моем приложении Gemini простым и эффективным способом?

И я не хочу использовать такой подход »

def handle_user_input(user_input):
if "news" in user_input:
    # Call news API
    pass
elif "weather" in user_input:
    # Call weather API
    pass
else:
    return "I can't handle that request."
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я предлагаю использовать словарь. По сути, то, что вы хотите сделать, — это нечто, называемое «паттерном стратегии». Вы хотите выбрать другую «стратегию» в вашем API-интерфейсе на основе разных входных данных.

так это будет выглядеть так: у вас есть словарь {"news": "news-url", "weather": "weather-url"}

и тогда ваш код будет очень простым

user_input = ""
url = api_dict[user_input]
#  make api call

и в начале вашей программы вам необходимо инициализировать свой dict. наличие этой структуры позволяет вам даже написать json-файл, проанализировать его и использовать в качестве словаря, что означает, что вам даже не нужно редактировать код для обновления доступных API.

В конце концов, при создании динамической программы параметры всегда нужно будет каким-то образом вводить. В худшем случае это происходит внутри кода, например, если вы успешно поняли, это плохо, поскольку это делает код длинным, нечитаемым и его трудно изменить. .

Улучшение, которое я предложил, заключается в создании этой динамической карты параметров в виде файла или словаря Python в начале программы и ее использовании.

наиболее динамичным вариантом было бы, если бы код мог генерировать разные ответы на разные входные данные исключительно на основе входных данных. таким примером могут быть Gemini и Chat-GPT, где вы можете задать маршрут API как «какая погода во Франции», так и «сколько будет 4 + 4», и он даст подходящий ответ (хотя и не всегда правильный)

РЕДАКТИРОВАТЬ (на основе последнего комментария)

Теперь я лучше понимаю ваш вопрос. Не могу сказать, что понимаю ваши рассуждения, но реализация очень проста, вот с кем я поговорил:

 chatGPT

here are a few api routes
http://test/weather
http://test/stocks
http://test/facts

in the next message I will put user input and based on the input you need to output the appropriate url

ChatGPT
Got it! Please provide the user input in your next message, and I'll give you the appropriate URL.

what should I wear tomorrow 
ChatGPT
For the query "what should I wear tomorrow," the appropriate URL is:

http://test/weather

вам понадобится

затем вы запрашиваете ввод пользователя и получаете свой URL-адрес в качестве ответа

ключевые вопросы:

  1. чат gpt придумывает что-то, он может легко что-то придумать, в лучшем случае он не предоставит результат URL-адреса для такого случая, но я уверен, что в некоторых крайних случаях он создаст URL-адрес, который не существует в вашем контексте
  2. обширный, использование gpt чата для обработки пользовательского ввода просто для того, чтобы сделать http-запрос обширным, это означает много запросов, много запросов, большое контекстное окно (токены) в зависимости от количества ваших URL-адресов и длины ввода. что бы вы ни создавали, эксплуатация будет довольно дорогостоящей

Спасибо за ваш подробный ответ. Однако я хочу избежать поиска определенных подстрок во входных данных пользователя. Вместо этого я ищу способ реализовать это с помощью обработки естественного языка (NLP), чтобы более разумно понимать намерения пользователя. В частности, я ищу решение на основе NLP для распознавания намерений пользователя и выполнения соответствующих вызовов API без явного сравнения строк в коде. Что-то вроде ИИ-бота, который пишет за меня API-запросы

user14990172 04.07.2024 20:14

обновил мой ответ, обязательно проверьте его

MoJony 05.07.2024 22:47

Другие вопросы по теме