Как выполнить поиск по нескольким регулярным выражениям в одной строке?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как выполнить поиск по нескольким регулярным выражениям в одной строке?

Сообщение Anonymous »


Здесь новичок в сообществе stackoverflow и разработке Python

Я создаю чат-бота с поддержкой искусственного интеллекта на основе LLM и данных Snowflake. Обычно пользователь запрашивает информацию о своих собственных данных, искусственный интеллект, который я подсказываю, будет отвечать на код sql в уценке, чтобы я мог выполнить поиск по регулярному выражению, чтобы проанализировать ответ бота и передать код sql снежинке/снежному парку, чтобы я мог получить и отобразить результаты запроса. На данный момент все работает и идет отлично

Теперь возникает проблема. Я хочу, чтобы пользователь мог запрашивать графики, графики, диаграммы... Поэтому я создал список, чтобы, если одна из строк в списке присутствует в подсказке, она давала ИИ другое системное приглашение. В приглашении ему предлагается сгенерировать функцию Python (df в параметре) в уценке, чтобы я мог проанализировать ее регулярным выражением и вызвать для отображения графика. ИИ все отлично генерирует, его код корректен и точен, но парсинг теперь не работает. Первый парсер принимает первый открывающий тег md sql до закрывающего тега md python, и после этого я получил исключение компиляции SQL

Мой код (регулярное выражение в sql_match иgraph_match):

if st.session_state.messages[-1]["роль"] != "помощник": с st.chat_message("помощник"): ответ = "" resp_container = st.empty() для дельты в openai.ChatCompletion.create( модель="gpt-4", messages=[{"role": m["role"], "content": m["content"]} для m в st.session_state.messages], поток = Истина, температура=0 ): ответ += delta.choices[0].delta.get("content", "") resp_container.markdown(ответ) сообщение = {"роль": "помощник", "контент": ответ} sql_match = re.search(r"```sql(.*)```", ответ, re.DOTALL) если sql_match: sql = sql_match.group(1) conn = st.experimental_connection("снежный парк") сообщение["результаты"] = conn.query(sql) df = pd.DataFrame(сообщение["результаты"]) st.write(df) graph_match = re.search(r"```python\n(.*)\n```", ответ, re.DOTALL) печать (graph_match) если граф_матч: graph_match.group(1) st.session_state.messages.append(сообщение) Большое спасибо за помощь!

Я пытался использовать другой LLM для генерации графиков, но совместить оба в этом месте кажется очень сложным. Я пытался придумать другой способ его анализа, но я начал заниматься Python и программированием 4 месяца назад. У меня пока мало логики и знаний программирования...^^
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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