πŸ€–πŸ’ͺ ChatGPT Π½Π° стСроидах: возмоТности ΠΏΠ»Π°Π³ΠΈΠ½Π°-Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€Π° для сСмантичСского поиска. Π§Π°cΡ‚ΡŒ 1

OpenAI Π²Π½Π΅Π΄Ρ€ΠΈΠ» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π² ChatGPT, позволяя ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ сторонним сСрвисам ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² сСти. Один ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² – Retrieval Plugin – обСспСчиваСт сСмантичСский поиск, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ памяти для контСкстно-зависимого Π΄ΠΈΠ°Π»ΠΎΠ³Π°. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ описываСтся процСсс установки, настройки окруТСния ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ тСстированиС Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΉ поиск.

OpenAI Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π² ChatGPT, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ сторонним сСрвисам ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² сСти. А ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Π±Ρ‹Π»Π° такая компания Π“ΡƒΠ³Π»?

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ самом, Π½Π° ΠΌΠΎΠΉ взгляд, интСрСсном ΠΏΠ»Π°Π³ΠΈΠ½Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π² собствСнной Π±Π°Π·Π΅.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ прСимущСства ΠΏΠ»Π°Π³ΠΈΠ½Π°

  1. БСмантичСский поиск: Плагин позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², задавая вопросы Π½Π° СстСствСнном языкС.
  2. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…: Retrieval Plugin ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ модСль эмбСддингов OpenAI для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… прСдставлСний Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΈΡ… поиска Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΠΎΠ½ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π±Π°Π·Ρ‹ для Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ поиска.
  3. Ѐункция памяти для ChatGPT: Плагин позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΠΎΠ² для дальнСйшСго использования, Ρ‚Π΅ΠΌ самым обСспСчивая контСкстно-зависимый Π΄ΠΈΠ°Π»ΠΎΠ³.

Установка ΠΈ интСграция ΠΏΠ»Π°Π³ΠΈΠ½Π°

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Retrieval Plugin, Π²Π°ΠΌ потрСбуСтся:

  1. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ для использования OpenAI API.
  2. Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ BEARER_TOKEN. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот сСрвис.
  3. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… для хранСния собствСнных Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Плагин прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ списка (pinecone, weaviate, zilliz, milvus, qdrant, ΠΈΠ»ΠΈ redis), Π½ΠΎ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΈΠ»ΠΈΡ‚ΡŒ ΠΈ для собствСнного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° (ΠΊΡƒΠ΄Π° ΠΆΠ΅ Π±Π΅Π· elasticsearch). Π’ ΠΎΠ±Π·ΠΎΡ€Π΅ я Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pinecone.
  4. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ собствСнный сСрвСр FastAPI.

НастраиваСм Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ pinecone

  1. РСгистрируСмся Π² pinecone. МоТно с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ github-Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°.
  2. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΊΠ»ΡŽΡ‡ API.
  3. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ свой собствСнный индСкс, это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΈΡ‚ΠΎΠ½ΠΎΠ²ΡΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ.
БозданиС индСкса в Pinecone
# PINECONE_ENVIRONMENT - ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ us-west4-gcp
# PINECONE_INDEX - названиС для вашСго индСкса


import os, pinecone

pinecone.init(api_key=os.environ['PINECONE_API_KEY'],
              environment=os.environ['PINECONE_ENVIRONMENT'])

pinecone.create_index(name=os.environ['PINECONE_INDEX'],
                      dimension=1536, # Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ эмбСддинги Open AI
                      metric='cosine',
                      metadata_config={
                          "indexed": ['source', 'source_id', 'url', 'created_at', 'author', 'document_id']})

НастраиваСм ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

  1. ΠŸΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Python 3.10
  2. ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ: git clone https://github.com/openai/chatgpt-retrieval-plugin.git
  3. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ: cd /path/to/chatgpt-retrieval-plugin
  4. УстановитС poetry: pip install poetry. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ способ создания Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния, Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ внСсти исправлСния Π² ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
  5. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ с Python 3.10: poetry env use python3.10
  6. АктивируйтС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅: poetry shell
  7. УстановитС зависимости прилоТСния: poetry install
  8. Π—Π°Π΄Π°ΠΉΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния.
Настройка Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния
export BEARER_TOKEN=<your_bearer_token>
export OPENAI_API_KEY=<your_openai_api_key>

export DATASTORE=pinecone
export PINECONE_API_KEY=<your_pinecone_api_key>
export PINECONE_ENVIRONMENT=<your_pinecone_env_key>
export PINECONE_INDEX=<your_pinecone_index>

  • ЗапуститС API локально: poetry run start. Если Π²Ρ‹ всС сдСлали ΠΏΠΎ инструкции, Ρ‚ΠΎ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π΅Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½ΠΈΠΆΠ΅. Π― создал индСкс с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ test, поэтому ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Π½Π΅ΠΌΡƒ.
Запуск сСрвСра
  • Если ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ ссылкС http://0.0.0.0:8000/docs, Ρ‚ΠΎ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚Π΅ Π½Π° страничку с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ. Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ. НаТмитС Π½Π° authorize ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ BEARER_TOKEN, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π² настройках.
Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° data scientist’а»

ОписаниС эндпоинтов

Плагин прСдоставляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ эндпоинты для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ:

  1. /upsert: Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ тСкста ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π·Π±ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΠΊΠΎΠ»ΠΎ 200 Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ.
  2. /upsert-file: ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» (PDF, TXT, DOCX, PPTX ΠΈΠ»ΠΈ MD) ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ тСкст ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π€Π°ΠΉΠ» конвСртируСтся Π² простой тСкст ΠΈ разбиваСтся Π½Π° части ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΏΠΎ 200 Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², каТдая с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ.
  3. /query: Запрос ΠΊ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… с использованиСм ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… запросов Π½Π° СстСствСнном языкС ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит список Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса.
  4. /delete: Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… с использованиСм ΠΈΡ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ„Π»Π°Π³Π° удалСния всСх Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

ВСстируСм индСкс

ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ Π² Ρ€Π°Π±ΠΎΡ‚Π΅. К соТалСнию, это Π½Π΅ получится ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² самом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ChatGPT, Ρ‚. ΠΊ. Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΏΠΎΠΊΠ° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½, ΠΈ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²Π°Ρ‚ΡŒ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. Но ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΉ поиск.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ сСбС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слуТбу ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. Наша Ρ†Π΅Π»ΡŒ – Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΡ‚Π° автоматичСски ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° вопросы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Π²ΠΈΠ΄Π΅ ссылок Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ(это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ confluence).

ΠŸΠΎΠΏΡ€ΠΎΡΠΈΠΌ ChatGPT ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π½Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для Ρ‚Π°ΠΊΠΎΠ³ΠΎ индСкса. Мой ΠΏΡ€ΠΎΠΌΡ‚ для этой Ρ†Π΅Π»ΠΈ:

ΠŸΡ€ΠΎΠΌΡ‚ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²
Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠΉ Π½Π°Π±ΠΎΡ€ ΠΈΠ· 10 тСстовых ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ pinecone. Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… содСрТится ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈ ΠΎ запросах Π² слуТбу ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

1. id: int (ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°)
2. text: str(основной тСкст Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°)
3. metadata: dict(содСрТит Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅):
	- title (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ описаниСм Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°)
	- url (ссылка Π½Π° источник ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ страницу confluence)

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ тСксты Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ python ΠΊΠΎΠ΄Π°

ChatGPT ΠΌΠ½Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для индСкса
documents = [
    {
        "id": 1,
        "text": "Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ автоматичСскоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ПО?",
        "metadata": {
            "title": "Настройка автоматичСского обновлСния",
            "url": "https://confluence.example.com/display/support/automatic-updates",
        }
    },
    {
        "id": 2,
        "text": "НСобходимо Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. КакиС Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹?",
        "metadata": {
            "title": "ВосстановлСниС ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…",
            "url": "https://confluence.example.com/display/support/data-recovery",
        }
    },
    {
        "id": 3,
        "text": "ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ. Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ?",
        "metadata": {
            "title": "РСшСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ",
            "url": "https://confluence.example.com/display/support/internet-connection-issues",
        }
    },
    {
        "id": 4,
        "text": "Как ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°?",
        "metadata": {
            "title": "ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°",
            "url": "https://confluence.example.com/display/support/computer-optimization",
        }
    },
    {
        "id": 5,
        "text": "Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅?",
        "metadata": {
            "title": "Настройка",
            "url": "https://confluence.example.com/display/support/",
        },
    },
    {
        "id": 6,
        "text": "Π‘Π±ΠΎΠΉ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ систСмы. Как Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ?",
        "metadata": {
            "title": "РСшСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ систСмы",
            "url": "https://confluence.example.com/display/support/update-failure",
        }
    },
    {
        "id": 7,
        "text": "Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΏΠΎΡ‡Ρ‚Ρƒ Π½Π° мобильном устройствС?",
        "metadata": {
            "title": "Настройка элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах",
            "url": "https://confluence.example.com/display/support/mobile-email-setup",
        }
    },
    {
        "id": 8,
        "text": "ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒΡŽ Π½Π° сСтСвом ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π΅. Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ?",
        "metadata": {
            "title": "РСшСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с сСтСвой ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒΡŽ",
            "url": "https://confluence.example.com/display/support/network-printing-issues",
        }
    },
    {
        "id": 9,
        "text": "Как Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ?",
        "metadata": {
            "title": "ВосстановлСниС пароля ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ",
            "url": "https://confluence.example.com/display/support/password-recovery",
        },
    }
   {
        "id": 10,
        "text": "Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ брандмауэр?",
        "metadata": {
            "title": "Установка ΠΈ настройка брандмауэра",
            "url": "https://confluence.example.com/display/support/firewall-setup",
        }
    }
]

Π’Π΅ΠΏΠ΅Ρ€ΡŒ индСксируСм эти ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π² Pycone:

Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΠ΅ΠΌ Π² Pycone
# pip install requests tqdm
import os 
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry
from typing import List, Dict, Optional
from tqdm import tqdm
  
BEARER_TOKEN = os.environ.get('BEARER_TOKEN')

headers = {  
    'Authorization': f'Bearer {BEARER_TOKEN}'
}

def upsert_documents(documents: List[Dict], endpoint_url: str = "http://localhost:8000", batch_size: int = 100, headers: Optional[Dict[str, str]] = None, timeout: float = 10.0):
    
    s = requests.Session()

    # УстанавливаСм ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ для 5xx ошибок
    retries = Retry(
        total=5,  # количСство ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ошибки
        backoff_factor=0.1,
        status_forcelist=[500, 502, 503, 504]
    )
    s.mount('http://', HTTPAdapter(max_retries=retries))

    for i in tqdm(range(0, len(documents), batch_size)):
        i_end = min(len(documents), i + batch_size)
        try:
            # ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ POST-запрос, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ Π΄ΠΎ 5 ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ
            res = s.post(
                f'{endpoint_url}/upsert',
                headers=headers,
                json={
                    "documents": documents[i:i_end]
                },
                timeout=timeout
            )
            res.raise_for_status()
        except requests.exceptions.RequestException as e:
            print(f'Ошибка ΠΏΡ€ΠΈ вставкС/ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ: {e}')


upsert_documents(documents, headers=headers)

Π’ случаС успСха Π² pycone Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ проиндСксированныС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹:

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ этот Π³Π΅Π½ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. Для этого Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу http://0.0.0.0:8000/sub/docs (Π΄Π°, создатСли Π½Π΅ полСнились ΠΈ создали ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ страничку) ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ запрос Π² Π½Π°ΡˆΡƒ Π±Π°Π·Ρƒ:

ΠšΡ€ΠΈΠΊ Π΄ΡƒΡˆΠΈ

ИИ Π²Ρ‹Π΄Π°Π» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ нашСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

ΠžΡ‚Π²Π΅Ρ‚ Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€Π°

Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ рСсурса, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°Ρ‡Π°Π» Π΄ΠΎΠ³Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ ΠΎΠ½ ΡƒΠΆΠ΅ это Π²ΠΈΠ΄Π΅Π». ВсС Π²Π΅Ρ€Π½ΠΎ, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π±Ρ‹Π» описан Π² ΠΌΠΎΠ΅ΠΉ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅. Π’ Π½Π΅ΠΉ Π±Ρ‹Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° базовая вСрсия Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ поиска, Π½ΠΎ Π±Π΅Π· использования ΠΌΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°(кстати, Ρ‚ΠΎΠΆΠ΅ Π½Π° FastAPI).

На сСгодня Ρƒ мСня всС – Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части, Ссли CloseAI всС-Ρ‚Π°ΠΊΠΈ выдаст ΠΌΠ½Π΅ Ρ‚Π°Π»ΠΎΠ½, посмотрим, ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² самом интСрфСйсС ChatGPT, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π½Π°ΡˆΠΈΡ… запросов Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π±Π°Π·Π΅.

ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° ΠΌΠΎΠΉ ΠΊΠ°Π½Π°Π», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я Ρ…Π°ΠΉΠΏΡƒΡŽ ΠΈ ΡΠΏΠ΅ΠΊΡƒΠ»ΠΈΡ€ΡƒΡŽ Π½Π° Ρ‚Π΅ΠΌΠ΅ NLP ΠΈ AI.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Retrieval Plugin Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ возмоТности ChatGPT, прСдоставляя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сСмантичСского поиска, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ памяти. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ модСль Π² контСкст Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для вас ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’Π°ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ возмоТности для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ AI для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.

НадСюсь, Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, спасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!

***

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

admin
11 дСкабря 2018

ООП Π½Π° Python: ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python допускаСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½ΠΎ Π² Π΅Π³ΠΎ основС...
admin
14 июля 2017

ПишСм свою Π½Π΅ΠΉΡ€ΠΎΡΠ΅Ρ‚ΡŒ: пошаговоС руководство

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ ΠΏΡ€ΠΎ Π½Π΅ΠΉΡ€ΠΎΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ… элСмС...
admin
13 фСвраля 2017

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python: ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° Π΄ΠΎ профСссионала

Пошаговая инструкция для всСх, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒΒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python...