This Ruby gem is a client for the Devin API.
This gem is not officially supported by Cognition AI, Inc.
Add this line to your application's Gemfile:
gem 'devin_api'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install devin_api
require 'devin_api'
client = DevinApi::Client.new do |config|
config.url = 'https://api.devin.ai'
config.access_token = 'your_access_token'
end
# Sessions
sessions = client.list_sessions(limit: 10)
puts "Sessions: #{sessions}"
new_session = client.create_session(prompt: 'Build a simple web app')
session_id = new_session['session_id']
puts "Created session: #{session_id}"
session_details = client.get_session(session_id)
puts "Session details: #{session_details}"
message_response = client.send_message(session_id, message: 'How do I start?')
puts "Message response: #{message_response}"
# Upload files to a session
file = File.open('path/to/file.txt')
upload_response = client.upload_file(file)
puts "Upload response: #{upload_response}"
# Update session tags
tags_response = client.update_session_tags(session_id, tags: ['web', 'app'])
puts "Tags update response: #{tags_response}"
# Secrets
secrets = client.list_secrets
puts "Secrets: #{secrets}"
# Knowledge
knowledge_items = client.list_knowledge
puts "Knowledge items: #{knowledge_items}"
new_knowledge = client.create_knowledge(
name: 'API Documentation',
body: 'This is the API documentation for our service.',
trigger_description: 'When API documentation is needed'
)
knowledge_id = new_knowledge['id']
puts "Created knowledge: #{knowledge_id}"
# Enterprise (for enterprise customers), Currently not tested!
audit_logs = client.list_audit_logs(start_time: '2023-01-01T00:00:00Z')
puts "Audit logs: #{audit_logs}"
consumption = client.get_enterprise_consumption(period: 'current_month')
puts "Consumption: #{consumption}"
require 'devin_api'
client = DevinApi::Client.new do |config|
config.url = 'https://api.devin.ai'
config.access_token = 'your_access_token'
end
# Resource-based usage
# Get a collection of sessions
sessions = client.sessions
sessions.each do |session|
puts "Session ID: #{session.session_id}, Prompt: #{session[:prompt]}"
end
# Create a new session
new_session = client.sessions.create(prompt: 'Build a simple web app')
puts "Created session: #{new_session.session_id}"
# Get a specific session
session = client.session('session_id')
# Send a message to the session
response = session.send_message('How do I start?')
# Upload file
file = File.open('path/to/file.txt')
upload_response = client.attachment.upload_file(file)
# Update session tags
session.update_tags(['web', 'app'])
# Pagination
next_page = sessions.next_page
if next_page
next_page.each do |session|
puts "Next page session: #{session.id}"
end
end
Bug reports and pull requests are welcome on GitHub at https://github.com/smasato/devin_api_client_rb.
The gem is available as open source under the terms of the MIT License.