diff --git a/README.md b/README.md index c1b953a4f..6a824d07d 100644 --- a/README.md +++ b/README.md @@ -26,43 +26,8 @@ The full continuous integration tests can be run with: bin/ci -## Working with AI features - -To work on AI features you need the OpenAI API key stored in the development's credentials file. To decrypt the credentials, -you need place the key in a file `config/credentials/development.key`. You can copy the file from One Password in -"Fizzy - development.key". - -To get semantic searches working for existing data you need to calculate all the vector embeds: - -```ruby -Card.find_each(&:refresh_search_embedding) -Comment.find_each(&:refresh_search_embedding) -``` - ### Tests -#### AI Requests - -For testing OpenAI API requests, we use [VCR](https://github.com/vcr/vcr). If you want to test AI features exercising the API, you need to place the `config/credentials/test.key` -that you can get from 1Password in "Fizzy - test.key". Then, when running tests that use Open AI API, you must either set the env variable `VCR_RECORD=1` -or to add `vcr_record!` to the test. See `VcrTestHelper`. Due to Open AI quotas, you may need to limit the parallelization. E.g: `PARALLEL_WORKERS=2` - -You can regenerate all the VCR fixtures with: - -```bash -VCR_RECORD=1 PARALLEL_WORKERS=2 bin/rails test -``` - -A typical scenario is making modifications LLM prompts. You need to: - -1. Make the prompt changes. -2. Run the test with `VCR_RECORD=1` set. This will let the test make the actual network requests and record the responses as VCR fixtures. -3. Make sure that the test passes by running the test normally (without setting VCR_RECORD=1). -4. Commit the YML fixtures that VCR has generated. That way, the next time you run the test, it will run fast without performing any request. - -Notice that if you pass changing data to the prompt, this mechanism won't work. E.g: if you pass data timestamps. -You need to make sure those timestamps are always the same across executions. - ### Outbound Emails #### Development