No more AI for now
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user