개발(72)
-
FastAPI에서 Stream 쓸 때 Sentry 오류 제대로 받기
FastAPI 프로젝트 중에 StreamResponse을 쓰는 프로젝트가 하나 있습니다.그런데 Sentry를 설치하고 에러를 보던 중에 모든 에러가 unhandled errors in a TaskGroup로 뜨고 있었습니다.그런데 막상 들어가서 보면 또 에러 내용이 전부 다릅니다.1차적으로 Stream에서 발생하는 에러의 최상위가 TaskGroup이기 때문에 Sentry에는 TaskGroup이 적혀 있었고,Exception의 경우는 그 하위에 관련된 에러로 표시되고 있었습니다. 해결방법FastAPI의 Stream은 AnyIO를 사용하고 있습니다.https://fastapi.tiangolo.com/async/#write-your-own-async-code Concurrency and async / awai..
2024.11.25 -
Amazon Bedrock에서 웹브라우징 (크롤링) 기능 추가하기
ChatGPT를 사용하면 브라우징 기술이 있습니다.브라우징 기술을 이용하면 페이지에 대한 요약, 분석이나 검색을 이용한 결과를 손쉽게 가져올 수 있습니다.물론 때때로 의도와 다른 답변이나 정확하지 않는 답변을 가져오기도 합니다.하지만 이 기능은 사용자가 LLM 어플리케이션을 쓰는데 강력한 기능입니다. Amazon Bedrock & Web BrowsingAmazon Bedrock을 쓰게되면 Cluade와 같은 대형 모델을 쉽게 사용할 수 있습니다.하지만 Bedrock 뿐만 아니라 모든 LLM 모델은 브라우징 기능을 제공하지 않습니다.그건 OpenAI도 마찬가지입니다.Playground에서 위와 같은 프롬프트를 쓰면 답변을 가져오지 않습니다.결국 웹브라우징은 고유한 LLM의 기능이 아니라 다른 툴을 사용하는..
2024.08.09 -
Amazon Bedrock를 이용한 텍스트 생성을 lambda stream mode로 올리기
다음은 amazon bedrock의 claude3을 이용해서 코드를 lambda stream모드로 올리고 값을 가져오는 예제입니다.우선 handler.js에 claude3 sonnet을 이용하는 코드를 작성합니다.대부분의 코드는 Amazon Bedrock에서 Anthropic Claude 3을 호출하여 텍스트 생성을 참고하여 작성했습니다."use strict";const {BedrockRuntimeClient, InvokeModelWithResponseStreamCommand} = require("@aws-sdk/client-bedrock-runtime");exports.hello = async (event) => { const client = new BedrockRuntimeClient({ ..
2024.05.23 -
Laravel 11 업그레이드
간단하게 운영중인 사이트가 Laravel 10으로 되어 있었는데, 이번에 Laravel 11로 업그레이드 하면서 적용한 몇가지 가이드를 남깁니다. config 정리 config는 github에 올라온 파일을 보고 변경했습니다. (https://github.com/laravel/laravel/tree/11.x/config) 1. config/app.php 및 provider 정리 config/app.php을 정리하면서 기존에 여기에 정리된 provider를 정리가 필요하게 되었습니다. 공식문서를 보면 provider 등록은 bootstrap/provider.php에서 하는 것으로 변경되었습니다. (https://laravel.com/docs/11.x/providers#registering-providers..
2024.03.19 -
Github Action을 이용해서 다른 브런치에 머지
상황 A브런치(branch-1)에 push가 되었을 경우 B브런치(branch-2)에도 똑같이 머지를 해야하는 경우가 생겼습니다. 개발 on: push: branches: - branch-1 name: Merge to branch-2 jobs: merge: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 with: fetch-depth: 0 - name: Merge to branch-2 run: | git config user.name "GitHub Actions" git config user.email "actions@github.com" git checkout branch-2 git merge --a..
2024.01.04 -
PHP, php8.1에서 pgsql관련 could not find driver가 뜹니다.
이슈 Alpine linux에서 서비스를 진행하고 있는데 여기에 pgsql driver를 사용하는 케이스가 있습니다. PHP 8.1로 업그레이드 이후 'could not find driver' 문제가 생겨서 애를 좀 먹었습니다. 해결 기존 PHP 8.0에서는 pgsql이나 pdo-pgsql을 따로 설치하지 않았습니다. 그런데 이 부분을 설치하니 해결이 되었습니다. 꼭 둘 다 설치하셔야 할 것입니다. RUN apk add --no-cache \ ... php81-pdo_pgsql \ php81-pgsql \ ...
2023.02.28