Недавно у нас на работе завезли локальную LLM’ку с китайскими премудростями. Среди прочих возможностей там есть RAG’и. Для тех, кто ещё не преисполнился: RAG — retrieval augmented generation, то есть такая фигня, где LLM’ка не просто гонит шизу, а делает это, используя переданный ей большой кусок контекста. То есть если вы ей скормили, например, wiki по aichat (🌚), то она будет не просто фантазировать, а искать ответы в этом контексте.
Перспективы потрясающие, поэтому я решил тут же скормить электронному болвану документацию из нашего Confluence Data Center. Но меня ждало разочарование: даже через VPN наша конфлюха требует авторизации — нельзя даже читать.
Я уже писал, что преисполнился ненависти и знаний относительно Confluence. И вот пришло время употребить их на благо человечества (озонечества) и научить aichat высасывать конфлюху с авторизацией.
Для этого понадобилось:
Теперь рассказываю, как сделать авторизацию по хедеру, когда приложенька (в моём случае aichat) не может в авторизацию. Вдруг кому пригодится.
mitmproxy
. Знаете про атаку man-in-the-middle? Вот это оно. Эта штука будет перехватывать запросы и модифицировать их. Почувствуй себя hackerman’ом.mitmproxy
. Мне пришлось заводить Firefox через проксю, потому что хром не смог нормально открыть.add_authorization_header.py
:def request(flow):
if flow.request.pretty_host == 'confluence.mydomain.ru': # меняй урлу на нужную тебе
flow.request.headers['Authorization'] = 'Bearer <token>' # меняй метод авторизации
mitmproxy -s add_authorization_header.py
Теперь просто проксируем запросы через http://127.0.0.1:8080
— и вы великолепны!